BusyBox Bug and Patch Tracking
BusyBox
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0003474 [BusyBox] Other minor always 05-28-08 09:22 07-01-08 07:24
Reporter nuclearcat View Status public  
Assigned To BusyBox
Priority normal Resolution unable to reproduce  
Status closed   Product Version svn
Summary 0003474: nmeter crashing
Description While trying to run nmeter on dual opteron machines

Proxy-Karam115 ~ # nmeter "CPU %c MEM %[mf] IO %b"
Segmentation fault
from their dmesg
[509567.114845] nmeter[1998]: segfault at 0 ip 08064ef2 sp bfb8f030 error 4 in busybox[8048000+76000]
another machine
[672036.057858] nmeter[6093]: segfault at 0 ip 08064ef2 sp bffffca0 error 4 in busybox[8048000+76000]

On another machine
defaulthost ~ # nmeter "CPU %c MEM %[mf] IO %b"
CPU .......... MEM 801m IO 0 0
CPU .......... MEM 801m IO 0 0
CPU .......... MEM 801m IO 0 0
CPU .......... MEM 801m IO 0 0
Segmentation fault

[917917.794357] nmeter[27440]: segfault at 0 ip 08064ef2 sp bf84d950 error 4 in busybox[8048000+76000]


BusyBox v1.10.1 (2008-04-20 17:31:36 EEST) multi-call binary
Additional Information CONFIG_HAVE_DOT_CONFIG=y
CONFIG_NITPICK=y
# CONFIG_DESKTOP is not set
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
CONFIG_SHOW_USAGE=y
CONFIG_FEATURE_VERBOSE_USAGE=y
CONFIG_FEATURE_COMPRESS_USAGE=y
CONFIG_FEATURE_INSTALLER=y
# CONFIG_LOCALE_SUPPORT is not set
CONFIG_GETOPT_LONG=y
CONFIG_FEATURE_DEVPTS=y
# CONFIG_FEATURE_CLEAN_UP is not set
CONFIG_FEATURE_PIDFILE=y
CONFIG_FEATURE_SUID=y
# CONFIG_FEATURE_SUID_CONFIG is not set
# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
# CONFIG_SELINUX is not set
# CONFIG_FEATURE_PREFER_APPLETS is not set
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
CONFIG_FEATURE_SYSLOG=y
# CONFIG_FEATURE_HAVE_RPC is not set
# CONFIG_STATIC is not set
# CONFIG_NOMMU is not set
# CONFIG_BUILD_LIBBUSYBOX is not set
# CONFIG_FEATURE_INDIVIDUAL is not set
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
CONFIG_LFS=y
# CONFIG_DEBUG is not set
# CONFIG_WERROR is not set
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set
CONFIG_INCLUDE_SUSv2=y
# CONFIG_INSTALL_NO_USR is not set
CONFIG_INSTALL_APPLET_SYMLINKS=y
# CONFIG_INSTALL_APPLET_HARDLINKS is not set
# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
# CONFIG_INSTALL_APPLET_DONT is not set
# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
CONFIG_PREFIX="./_install"
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SIZE_VS_SPEED=2
CONFIG_FEATURE_FAST_TOP=y
# CONFIG_FEATURE_ETC_NETWORKS is not set
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024
# CONFIG_FEATURE_EDITING_VI is not set
CONFIG_FEATURE_EDITING_HISTORY=64
# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
CONFIG_FEATURE_TAB_COMPLETION=y
# CONFIG_FEATURE_USERNAME_COMPLETION is not set
CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
CONFIG_FEATURE_COPYBUF_KB=4
CONFIG_MONOTONIC_SYSCALL=y
CONFIG_IOCTL_HEX2STR_ERROR=y
# CONFIG_AR is not set
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
CONFIG_BUNZIP2=y
CONFIG_BZIP2=y
# CONFIG_CPIO is not set
# CONFIG_DPKG is not set
# CONFIG_DPKG_DEB is not set
# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
CONFIG_GUNZIP=y
# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
CONFIG_GZIP=y
# CONFIG_RPM2CPIO is not set
# CONFIG_RPM is not set
# CONFIG_FEATURE_RPM_BZ2 is not set
CONFIG_TAR=y
CONFIG_FEATURE_TAR_CREATE=y
CONFIG_FEATURE_TAR_GZIP=y
CONFIG_FEATURE_TAR_BZIP2=y
CONFIG_FEATURE_TAR_LZMA=y
CONFIG_FEATURE_TAR_COMPRESS=y
CONFIG_FEATURE_TAR_AUTODETECT=y
CONFIG_FEATURE_TAR_FROM=y
# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
# CONFIG_UNCOMPRESS is not set
# CONFIG_UNLZMA is not set
# CONFIG_FEATURE_LZMA_FAST is not set
# CONFIG_UNZIP is not set
# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
# CONFIG_FEATURE_DEB_TAR_GZ is not set
# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
# CONFIG_FEATURE_DEB_TAR_LZMA is not set
CONFIG_BASENAME=y
CONFIG_CAL=y
CONFIG_CAT=y
# CONFIG_CATV is not set
CONFIG_CHGRP=y
CONFIG_CHMOD=y
CONFIG_CHOWN=y
CONFIG_CHROOT=y
CONFIG_CKSUM=y
CONFIG_COMM=y
CONFIG_CP=y
CONFIG_CUT=y
CONFIG_DATE=y
# CONFIG_FEATURE_DATE_ISOFMT is not set
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_DF=y
CONFIG_FEATURE_DF_INODE=y
CONFIG_DIRNAME=y
CONFIG_DOS2UNIX=y
CONFIG_UNIX2DOS=y
CONFIG_DU=y
CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
CONFIG_ECHO=y
CONFIG_FEATURE_FANCY_ECHO=y
CONFIG_ENV=y
CONFIG_FEATURE_ENV_LONG_OPTIONS=y
CONFIG_EXPAND=y
CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
CONFIG_EXPR=y
CONFIG_EXPR_MATH_SUPPORT_64=y
CONFIG_FALSE=y
CONFIG_FOLD=y
CONFIG_HEAD=y
CONFIG_FEATURE_FANCY_HEAD=y
CONFIG_HOSTID=y
CONFIG_ID=y
CONFIG_INSTALL=y
CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
CONFIG_LENGTH=y
CONFIG_LN=y
CONFIG_LOGNAME=y
CONFIG_LS=y
CONFIG_FEATURE_LS_FILETYPES=y
CONFIG_FEATURE_LS_FOLLOWLINKS=y
CONFIG_FEATURE_LS_RECURSIVE=y
CONFIG_FEATURE_LS_SORTFILES=y
CONFIG_FEATURE_LS_TIMESTAMPS=y
CONFIG_FEATURE_LS_USERNAME=y
CONFIG_FEATURE_LS_COLOR=y
CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
CONFIG_MD5SUM=y
CONFIG_MKDIR=y
CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
CONFIG_MKFIFO=y
CONFIG_MKNOD=y
CONFIG_MV=y
CONFIG_FEATURE_MV_LONG_OPTIONS=y
CONFIG_NICE=y
CONFIG_NOHUP=y
CONFIG_OD=y
CONFIG_PRINTENV=y
CONFIG_PRINTF=y
CONFIG_PWD=y
CONFIG_READLINK=y
CONFIG_FEATURE_READLINK_FOLLOW=y
CONFIG_REALPATH=y
CONFIG_RM=y
CONFIG_RMDIR=y
# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
CONFIG_SEQ=y
CONFIG_SHA1SUM=y
CONFIG_SLEEP=y
CONFIG_FEATURE_FANCY_SLEEP=y
CONFIG_SORT=y
CONFIG_FEATURE_SORT_BIG=y
CONFIG_SPLIT=y
CONFIG_FEATURE_SPLIT_FANCY=y
CONFIG_STAT=y
CONFIG_FEATURE_STAT_FORMAT=y
CONFIG_STTY=y
CONFIG_SUM=y
CONFIG_SYNC=y
# CONFIG_TAC is not set
CONFIG_TAIL=y
# CONFIG_FEATURE_FANCY_TAIL is not set
CONFIG_TEE=y
CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
CONFIG_TEST=y
CONFIG_FEATURE_TEST_64=y
CONFIG_TOUCH=y
CONFIG_TR=y
CONFIG_FEATURE_TR_CLASSES=y
CONFIG_FEATURE_TR_EQUIV=y
CONFIG_TRUE=y
CONFIG_TTY=y
CONFIG_UNAME=y
CONFIG_UNEXPAND=y
CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
CONFIG_UNIQ=y
CONFIG_USLEEP=y
CONFIG_UUDECODE=y
CONFIG_UUENCODE=y
CONFIG_WC=y
CONFIG_FEATURE_WC_LARGE=y
CONFIG_WHO=y
CONFIG_WHOAMI=y
CONFIG_YES=y
# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set
CONFIG_FEATURE_AUTOWIDTH=y
CONFIG_FEATURE_HUMAN_READABLE=y
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
CONFIG_CHVT=y
CONFIG_CLEAR=y
CONFIG_DEALLOCVT=y
# CONFIG_DUMPKMAP is not set
# CONFIG_KBD_MODE is not set
# CONFIG_LOADFONT is not set
# CONFIG_LOADKMAP is not set
CONFIG_OPENVT=y
CONFIG_RESET=y
# CONFIG_RESIZE is not set
# CONFIG_FEATURE_RESIZE_PRINT is not set
CONFIG_SETCONSOLE=y
# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
# CONFIG_SETKEYCODES is not set
CONFIG_SETLOGCONS=y
CONFIG_MKTEMP=y
CONFIG_PIPE_PROGRESS=y
CONFIG_RUN_PARTS=y
CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
CONFIG_FEATURE_RUN_PARTS_FANCY=y
CONFIG_START_STOP_DAEMON=y
CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
CONFIG_WHICH=y
CONFIG_AWK=y
CONFIG_FEATURE_AWK_MATH=y
CONFIG_CMP=y
CONFIG_DIFF=y
CONFIG_FEATURE_DIFF_BINARY=y
CONFIG_FEATURE_DIFF_DIR=y
# CONFIG_FEATURE_DIFF_MINIMAL is not set
# CONFIG_ED is not set
CONFIG_PATCH=y
CONFIG_SED=y
# CONFIG_VI is not set
CONFIG_FEATURE_VI_MAX_LEN=
# CONFIG_FEATURE_VI_8BIT is not set
# CONFIG_FEATURE_VI_COLON is not set
# CONFIG_FEATURE_VI_YANKMARK is not set
# CONFIG_FEATURE_VI_SEARCH is not set
# CONFIG_FEATURE_VI_USE_SIGNALS is not set
# CONFIG_FEATURE_VI_DOT_CMD is not set
# CONFIG_FEATURE_VI_READONLY is not set
# CONFIG_FEATURE_VI_SETOPTS is not set
# CONFIG_FEATURE_VI_SET is not set
# CONFIG_FEATURE_VI_WIN_RESIZE is not set
# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
CONFIG_FEATURE_ALLOW_EXEC=y
CONFIG_FIND=y
CONFIG_FEATURE_FIND_PRINT0=y
CONFIG_FEATURE_FIND_MTIME=y
CONFIG_FEATURE_FIND_MMIN=y
CONFIG_FEATURE_FIND_PERM=y
CONFIG_FEATURE_FIND_TYPE=y
CONFIG_FEATURE_FIND_XDEV=y
CONFIG_FEATURE_FIND_MAXDEPTH=y
CONFIG_FEATURE_FIND_NEWER=y
CONFIG_FEATURE_FIND_INUM=y
CONFIG_FEATURE_FIND_EXEC=y
CONFIG_FEATURE_FIND_USER=y
CONFIG_FEATURE_FIND_GROUP=y
CONFIG_FEATURE_FIND_NOT=y
CONFIG_FEATURE_FIND_DEPTH=y
CONFIG_FEATURE_FIND_PAREN=y
CONFIG_FEATURE_FIND_SIZE=y
CONFIG_FEATURE_FIND_PRUNE=y
CONFIG_FEATURE_FIND_DELETE=y
CONFIG_FEATURE_FIND_PATH=y
CONFIG_FEATURE_FIND_REGEX=y
# CONFIG_FEATURE_FIND_CONTEXT is not set
CONFIG_GREP=y
CONFIG_FEATURE_GREP_EGREP_ALIAS=y
CONFIG_FEATURE_GREP_FGREP_ALIAS=y
CONFIG_FEATURE_GREP_CONTEXT=y
CONFIG_XARGS=y
CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
CONFIG_INIT=y
# CONFIG_DEBUG_INIT is not set
CONFIG_FEATURE_USE_INITTAB=y
CONFIG_FEATURE_KILL_REMOVED=y
CONFIG_FEATURE_KILL_DELAY=1
CONFIG_FEATURE_INIT_SCTTY=y
CONFIG_FEATURE_INIT_SYSLOG=y
# CONFIG_FEATURE_EXTRA_QUIET is not set
# CONFIG_FEATURE_INIT_COREDUMPS is not set
CONFIG_FEATURE_INITRD=y
CONFIG_HALT=y
CONFIG_MESG=y
CONFIG_FEATURE_SHADOWPASSWDS=y
CONFIG_USE_BB_SHADOW=y
CONFIG_USE_BB_PWD_GRP=y
CONFIG_ADDGROUP=y
CONFIG_FEATURE_ADDUSER_TO_GROUP=y
CONFIG_DELGROUP=y
CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
CONFIG_FEATURE_CHECK_NAMES=y
CONFIG_ADDUSER=y
CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y
CONFIG_DELUSER=y
CONFIG_GETTY=y
CONFIG_FEATURE_UTMP=y
CONFIG_FEATURE_WTMP=y
CONFIG_LOGIN=y
# CONFIG_PAM is not set
# CONFIG_LOGIN_SCRIPTS is not set
# CONFIG_FEATURE_NOLOGIN is not set
CONFIG_FEATURE_SECURETTY=y
CONFIG_PASSWD=y
# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
CONFIG_CRYPTPW=y
# CONFIG_CHPASSWD is not set
CONFIG_SU=y
CONFIG_FEATURE_SU_SYSLOG=y
# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
# CONFIG_SULOGIN is not set
# CONFIG_VLOCK is not set
# CONFIG_CHATTR is not set
# CONFIG_FSCK is not set
# CONFIG_LSATTR is not set
CONFIG_INSMOD=y
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
CONFIG_RMMOD=y
CONFIG_LSMOD=y
CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
CONFIG_MODPROBE=y
CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
# CONFIG_FEATURE_2_4_MODULES is not set
CONFIG_FEATURE_2_6_MODULES=y
# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
CONFIG_DMESG=y
CONFIG_FEATURE_DMESG_PRETTY=y
# CONFIG_FBSET is not set
# CONFIG_FEATURE_FBSET_FANCY is not set
# CONFIG_FEATURE_FBSET_READMODE is not set
CONFIG_FDFLUSH=y
# CONFIG_FDFORMAT is not set
CONFIG_FDISK=y
CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
CONFIG_FEATURE_FDISK_WRITABLE=y
# CONFIG_FEATURE_AIX_LABEL is not set
# CONFIG_FEATURE_SGI_LABEL is not set
# CONFIG_FEATURE_SUN_LABEL is not set
# CONFIG_FEATURE_OSF_LABEL is not set
CONFIG_FEATURE_FDISK_ADVANCED=y
# CONFIG_FINDFS is not set
CONFIG_FREERAMDISK=y
# CONFIG_FSCK_MINIX is not set
# CONFIG_MKFS_MINIX is not set
# CONFIG_FEATURE_MINIX2 is not set
CONFIG_GETOPT=y
CONFIG_HEXDUMP=y
CONFIG_FEATURE_HEXDUMP_REVERSE=y
CONFIG_HD=y
CONFIG_HWCLOCK=y
CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
# CONFIG_IPCRM is not set
# CONFIG_IPCS is not set
# CONFIG_LOSETUP is not set
CONFIG_MDEV=y
CONFIG_FEATURE_MDEV_CONF=y
CONFIG_FEATURE_MDEV_RENAME=y
CONFIG_FEATURE_MDEV_EXEC=y
CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
# CONFIG_MKSWAP is not set
# CONFIG_FEATURE_MKSWAP_V0 is not set
CONFIG_MORE=y
CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_VOLUMEID=y
CONFIG_FEATURE_VOLUMEID_EXT=y
# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
CONFIG_FEATURE_VOLUMEID_FAT=y
# CONFIG_FEATURE_VOLUMEID_HFS is not set
# CONFIG_FEATURE_VOLUMEID_JFS is not set
CONFIG_FEATURE_VOLUMEID_XFS=y
# CONFIG_FEATURE_VOLUMEID_NTFS is not set
CONFIG_FEATURE_VOLUMEID_ISO9660=y
CONFIG_FEATURE_VOLUMEID_UDF=y
# CONFIG_FEATURE_VOLUMEID_LUKS is not set
CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
CONFIG_FEATURE_VOLUMEID_CRAMFS=y
CONFIG_FEATURE_VOLUMEID_ROMFS=y
CONFIG_FEATURE_VOLUMEID_SYSV=y
# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
CONFIG_MOUNT=y
CONFIG_FEATURE_MOUNT_FAKE=y
CONFIG_FEATURE_MOUNT_VERBOSE=y
# CONFIG_FEATURE_MOUNT_HELPERS is not set
CONFIG_FEATURE_MOUNT_LABEL=y
# CONFIG_FEATURE_MOUNT_NFS is not set
# CONFIG_FEATURE_MOUNT_CIFS is not set
CONFIG_FEATURE_MOUNT_FLAGS=y
CONFIG_FEATURE_MOUNT_FSTAB=y
# CONFIG_PIVOT_ROOT is not set
CONFIG_RDATE=y
CONFIG_READPROFILE=y
CONFIG_RTCWAKE=y
CONFIG_SETARCH=y
CONFIG_SWAPONOFF=y
CONFIG_SWITCH_ROOT=y
CONFIG_UMOUNT=y
CONFIG_FEATURE_UMOUNT_ALL=y
CONFIG_FEATURE_MOUNT_LOOP=y
# CONFIG_FEATURE_MTAB_SUPPORT is not set
CONFIG_ADJTIMEX=y
CONFIG_BBCONFIG=y
CONFIG_CHAT=y
CONFIG_FEATURE_CHAT_NOFAIL=y
# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
CONFIG_CHRT=y
CONFIG_CROND=y
# CONFIG_DEBUG_CROND_OPTION is not set
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
CONFIG_CRONTAB=y
# CONFIG_DC is not set
# CONFIG_DEVFSD is not set
# CONFIG_DEVFSD_MODLOAD is not set
# CONFIG_DEVFSD_FG_NP is not set
# CONFIG_DEVFSD_VERBOSE is not set
# CONFIG_FEATURE_DEVFS is not set
# CONFIG_EJECT is not set
# CONFIG_FEATURE_EJECT_SCSI is not set
CONFIG_LAST=y
CONFIG_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999
CONFIG_FEATURE_LESS_BRACKETS=y
CONFIG_FEATURE_LESS_FLAGS=y
# CONFIG_FEATURE_LESS_FLAGCS is not set
# CONFIG_FEATURE_LESS_MARKS is not set
# CONFIG_FEATURE_LESS_REGEXP is not set
# CONFIG_HDPARM is not set
# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
CONFIG_MAKEDEVS=y
# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
CONFIG_FEATURE_MAKEDEVS_TABLE=y
CONFIG_MICROCOM=y
CONFIG_MOUNTPOINT=y
# CONFIG_MT is not set
# CONFIG_RAIDAUTORUN is not set
CONFIG_READAHEAD=y
CONFIG_RUNLEVEL=y
CONFIG_RX=y
# CONFIG_SCRIPT is not set
CONFIG_STRINGS=y
CONFIG_SETSID=y
CONFIG_TASKSET=y
CONFIG_FEATURE_TASKSET_FANCY=y
CONFIG_TIME=y
CONFIG_TTYSIZE=y
CONFIG_WATCHDOG=y
# CONFIG_FEATURE_IPV6 is not set
# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
CONFIG_VERBOSE_RESOLUTION_ERRORS=y
# CONFIG_ARP is not set
CONFIG_ARPING=y
# CONFIG_BRCTL is not set
# CONFIG_FEATURE_BRCTL_FANCY is not set
# CONFIG_DNSD is not set
CONFIG_ETHER_WAKE=y
CONFIG_FAKEIDENTD=y
CONFIG_FTPGET=y
CONFIG_FTPPUT=y
CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
CONFIG_HOSTNAME=y
# CONFIG_HTTPD is not set
# CONFIG_FEATURE_HTTPD_RANGES is not set
# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
# CONFIG_FEATURE_HTTPD_SETUID is not set
# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
# CONFIG_FEATURE_HTTPD_CGI is not set
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
# CONFIG_FEATURE_HTTPD_PROXY is not set
CONFIG_IFCONFIG=y
CONFIG_FEATURE_IFCONFIG_STATUS=y
# CONFIG_FEATURE_IFCONFIG_SLIP is not set
# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
CONFIG_FEATURE_IFCONFIG_HW=y
CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
# CONFIG_IFENSLAVE is not set
# CONFIG_IFUPDOWN is not set
CONFIG_IFUPDOWN_IFSTATE_PATH=""
# CONFIG_FEATURE_IFUPDOWN_IP is not set
# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set
# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
CONFIG_INETD=y
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
# CONFIG_FEATURE_INETD_RPC is not set
# CONFIG_IP is not set
# CONFIG_FEATURE_IP_ADDRESS is not set
# CONFIG_FEATURE_IP_LINK is not set
# CONFIG_FEATURE_IP_ROUTE is not set
# CONFIG_FEATURE_IP_TUNNEL is not set
# CONFIG_FEATURE_IP_RULE is not set
# CONFIG_FEATURE_IP_SHORT_FORMS is not set
# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
# CONFIG_IPADDR is not set
# CONFIG_IPLINK is not set
# CONFIG_IPROUTE is not set
# CONFIG_IPTUNNEL is not set
# CONFIG_IPRULE is not set
# CONFIG_IPCALC is not set
# CONFIG_FEATURE_IPCALC_FANCY is not set
# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
CONFIG_NAMEIF=y
CONFIG_FEATURE_NAMEIF_EXTENDED=y
CONFIG_NC=y
CONFIG_NC_SERVER=y
CONFIG_NC_EXTRA=y
# CONFIG_NETSTAT is not set
# CONFIG_FEATURE_NETSTAT_WIDE is not set
CONFIG_NSLOOKUP=y
# CONFIG_PING is not set
# CONFIG_PING6 is not set
# CONFIG_FEATURE_FANCY_PING is not set
# CONFIG_PSCAN is not set
CONFIG_ROUTE=y
# CONFIG_SENDMAIL is not set
# CONFIG_FETCHMAIL is not set
# CONFIG_SLATTACH is not set
CONFIG_TELNET=y
CONFIG_FEATURE_TELNET_TTYPE=y
CONFIG_FEATURE_TELNET_AUTOLOGIN=y
CONFIG_TELNETD=y
CONFIG_FEATURE_TELNETD_STANDALONE=y
CONFIG_TFTP=y
CONFIG_TFTPD=y
CONFIG_FEATURE_TFTP_GET=y
CONFIG_FEATURE_TFTP_PUT=y
CONFIG_FEATURE_TFTP_BLOCKSIZE=y
# CONFIG_DEBUG_TFTP is not set
CONFIG_TRACEROUTE=y
CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
CONFIG_APP_UDHCPD=y
CONFIG_APP_DHCPRELAY=y
CONFIG_APP_DUMPLEASES=y
CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y
CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
CONFIG_APP_UDHCPC=y
CONFIG_FEATURE_UDHCPC_ARPING=y
# CONFIG_FEATURE_UDHCP_PORT is not set
# CONFIG_FEATURE_UDHCP_DEBUG is not set
# CONFIG_FEATURE_RFC3397 is not set
CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
CONFIG_VCONFIG=y
CONFIG_WGET=y
CONFIG_FEATURE_WGET_STATUSBAR=y
CONFIG_FEATURE_WGET_AUTHENTICATION=y
CONFIG_FEATURE_WGET_LONG_OPTIONS=y
CONFIG_ZCIP=y
# CONFIG_TCPSVD is not set
# CONFIG_UDPSVD is not set
CONFIG_FREE=y
CONFIG_FUSER=y
CONFIG_KILL=y
CONFIG_KILLALL=y
CONFIG_KILLALL5=y
CONFIG_NMETER=y
CONFIG_PGREP=y
CONFIG_PIDOF=y
CONFIG_FEATURE_PIDOF_SINGLE=y
CONFIG_FEATURE_PIDOF_OMIT=y
CONFIG_PKILL=y
CONFIG_PS=y
CONFIG_FEATURE_PS_WIDE=y
# CONFIG_FEATURE_PS_TIME is not set
# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
CONFIG_RENICE=y
CONFIG_BB_SYSCTL=y
CONFIG_TOP=y
CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
CONFIG_FEATURE_TOP_DECIMALS=y
CONFIG_FEATURE_TOPMEM=y
CONFIG_UPTIME=y
CONFIG_WATCH=y
CONFIG_FEATURE_SH_IS_ASH=y
# CONFIG_FEATURE_SH_IS_HUSH is not set
# CONFIG_FEATURE_SH_IS_MSH is not set
# CONFIG_FEATURE_SH_IS_NONE is not set
CONFIG_ASH=y
CONFIG_ASH_JOB_CONTROL=y
CONFIG_ASH_READ_NCHARS=y
CONFIG_ASH_READ_TIMEOUT=y
CONFIG_ASH_ALIAS=y
CONFIG_ASH_MATH_SUPPORT=y
# CONFIG_ASH_MATH_SUPPORT_64 is not set
CONFIG_ASH_GETOPTS=y
CONFIG_ASH_BUILTIN_ECHO=y
CONFIG_ASH_BUILTIN_TEST=y
# CONFIG_ASH_CMDCMD is not set
CONFIG_ASH_MAIL=y
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
CONFIG_ASH_RANDOM_SUPPORT=y
CONFIG_ASH_EXPAND_PRMT=y
# CONFIG_HUSH is not set
# CONFIG_HUSH_HELP is not set
# CONFIG_HUSH_INTERACTIVE is not set
# CONFIG_HUSH_JOB is not set
# CONFIG_HUSH_TICK is not set
# CONFIG_HUSH_IF is not set
# CONFIG_HUSH_LOOPS is not set
# CONFIG_LASH is not set
# CONFIG_MSH is not set
CONFIG_FEATURE_SH_EXTRA_QUIET=y
# CONFIG_FEATURE_SH_STANDALONE is not set
# CONFIG_CTTYHACK is not set
CONFIG_SYSLOGD=y
# CONFIG_FEATURE_ROTATE_LOGFILE is not set
CONFIG_FEATURE_REMOTE_LOG=y
CONFIG_FEATURE_SYSLOGD_DUP=y
# CONFIG_FEATURE_IPC_SYSLOG is not set
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=
# CONFIG_LOGREAD is not set
# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
CONFIG_KLOGD=y
CONFIG_LOGGER=y
CONFIG_RUNSV=y
CONFIG_RUNSVDIR=y
CONFIG_SV=y
CONFIG_SVLOGD=y
CONFIG_CHPST=y
CONFIG_SETUIDGID=y
CONFIG_ENVUIDGID=y
CONFIG_ENVDIR=y
CONFIG_SOFTLIMIT=y
# CONFIG_CHCON is not set
# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
# CONFIG_GETENFORCE is not set
# CONFIG_GETSEBOOL is not set
# CONFIG_LOAD_POLICY is not set
# CONFIG_MATCHPATHCON is not set
# CONFIG_RESTORECON is not set
# CONFIG_RUNCON is not set
# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
# CONFIG_SELINUXENABLED is not set
# CONFIG_SETENFORCE is not set
# CONFIG_SETFILES is not set
# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
# CONFIG_SETSEBOOL is not set
# CONFIG_SESTATUS is not set
# CONFIG_LPD is not set
# CONFIG_LPR is not set
# CONFIG_LPQ is not set
Attached Files  3.patch [^] (4,486 bytes) 06-28-08 16:37
 nmeter.s.gcc3 [^] (41,128 bytes) 06-29-08 00:55
 nmeter.s.gcc4 [^] (44,008 bytes) 06-29-08 00:55

- Relationships

- Notes
(0007884)
vda
05-28-08 11:13

I tried to reproduce it with 1.10.2 and it works for me with this .config.
Can you confirn that 1.10.2 crashes for you too?

Also:

nmeter[6093]: segfault at 0 ip 08064ef2 sp bffffca0 error 4

Can you look up IP addr 08064ef2 in busybox_unstripped.map? You can find this file in the build directory.

Look for like like these:

 .text.sortcmp 0x000000000808b694 0xac coreutils/lib.a(ls.o)
 .text.my_stat 0x000000000808b740 0x80 coreutils/lib.a(ls.o)
 
(0007894)
nuclearcat
05-28-08 12:27

sunfire-1 busybox-1.10.1 # cat busybox_unstripped.map |grep '08064e'
                0x0000000008064e3f 0x5c procps/lib.a(nmeter.o)
 .text.put 0x0000000008064e9b 0x38 procps/lib.a(nmeter.o)
                0x0000000008064ed3 0x2c procps/lib.a(nmeter.o)
                0x0000000008064eff 0x9f procps/lib.a(nmeter.o)

sunfire-1 busybox-1.10.1 # addr2line -i -e busybox_unstripped 08064ef2
nmeter.c:0



Also few more attempts to find which string fail:
Proxy-Karam114 ~ # nmeter "CPU %c MEM %[mf] IO %b"
Segmentation fault
Proxy-Karam114 ~ # nmeter "CPU %c MEM %[mf]"
Segmentation fault
Proxy-Karam114 ~ # nmeter "CPU %c"
CPU SUUUDDDDii
CPU SSUUUUiii.
CPU SSUUUUDDii
CPU SSUUUUDii.
CPU SSUUUUii..
CPU SSUUUUDii.
CPU SSUUUUDii.
^C
Proxy-Karam114 ~ # nmeter "CPU %c IO %b"
CPU SUUUUDii.. IO 1.9m 10m
CPU SSUUUUDii. IO 5.3m 6.0m
^C
Proxy-Karam114 ~ # nmeter "MEM %[mf]"
MEM 1.9g
MEM 1.9g
MEM 1.9g
MEM 1.9g
MEM 1.9g
^C
Proxy-Karam114 ~ # nmeter "CPU %c IO %b"
CPU SSUUUUDii. IO 2.3m 9.4m
^C
Proxy-Karam114 ~ # nmeter "CPU %c IO %b MEM %[mf]"
Segmentation fault
Proxy-Karam114 ~ # nmeter "CPU %c IO %b MEM %[mf]"
Segmentation fault

Proxy-Karam114 ~ # nmeter "CPU %c IO %b MEM %[mf]"
Segmentation fault
Proxy-Karam114 ~ # nmeter "CPU %c IO %b MEM %[mf]"
Segmentation fault
Proxy-Karam114 ~ # nmeter "CPU %c IO %b MEM %[mf] "
Segmentation fault
Proxy-Karam114 ~ # nmeter "CPU %c IO %b MEM %[mf]"
Segmentation fault
Proxy-Karam114 ~ # nmeter "CPU %c IO %b %[mf]"
Segmentation fault
Proxy-Karam114 ~ # nmeter "CPU %c %b %[mf]"
Segmentation fault
Proxy-Karam114 ~ # nmeter "%c %b %[mf]"
Segmentation fault
Proxy-Karam114 ~ # nmeter "%b %[mf]"
1.4m 288k 1.9g
4.1m 7.9m 1.9g
 
(0007904)
vda
05-30-08 14:55

Add a test print in procps/nmeter.c:

static void put(const char *s)
{
        int sz = strlen(s);
        if (sz > outbuf + sizeof(outbuf) - cur_outbuf)
                sz = outbuf + sizeof(outbuf) - cur_outbuf;
bb_error_msg("outbuf %p cur_outbuf %p sz %d", outbuf, cur_outbuf, sz);
        memcpy(cur_outbuf, s, sz);
        cur_outbuf += sz;
}

What does it print in your case?
 
(0008654)
nuclearcat
06-28-08 10:11

Sorry for delay, seems last request i didn't receive because of mailserver failure.
Issue still actual. Here is debug output:
meter: outbuf 0x80bf990 cur_outbuf 0x80bf990 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf994 sz 10
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf99e sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9a2 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9a7 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9ab sz 5
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9b0 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf990 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf994 sz 10
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf99e sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9a2 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9a7 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9ab sz 5
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9b0 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9b4 sz 1
CPU ii........ IO 0 0 MEM 1.9g
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf990 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf994 sz 10
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf99e sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9a2 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9a7 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9ab sz 5
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9b0 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9b4 sz 1
CPU i......... IO 0 0 MEM 1.9g
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf990 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf994 sz 10
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf99e sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9a2 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9a7 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9ab sz 5
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9b0 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9b4 sz 1
CPU i......... IO 0 0 MEM 1.9g
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf990 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf994 sz 10
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf99e sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9a2 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9a7 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9ab sz 5
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9b0 sz 4
nmeter: outbuf 0x80bf990 cur_outbuf 0x80bf9b4 sz 1
CPU i......... IO 0 0 MEM 1.9g
 
(0008724)
vda
06-28-08 15:00

nmeter[6093]: segfault at 0 ip 08064ef2 sp bffffca0 error 4

.text.put 0x0000000008064e9b 0x38 procps/lib.a(nmeter.o)
                0x0000000008064ed3 0x2c procps/lib.a(nmeter.o)
                0x0000000008064eff 0x9f procps/lib.a(nmeter.o)

From the debug printout it is obvious that put() fuction is working ok.
It's failing in a function which starts at 0x0000000008064ed3 (directly after put()). Which function is that? Do "make procps/nmeter.s" and "objdump -dr procps/nmeter.o" and post both results please, the function will be visible there.
 
(0008734)
nuclearcat
06-28-08 16:04

Since i am using 1.11.0 (it is crashing too)
[ 218.330465] nmeter[1733]: segfault at 0 ip 0806488d sp bf9d8680 error 4 in busybox[8048000+76000]

0806486e <collect_info>:
0806489a <collect_time>:

Looks like here:
Disassembly of section .text.collect_info:

00000000 <collect_info>:
   0: 53 push %ebx
   1: 89 c3 mov %eax,%ebx
   3: 83 ec 08 sub $0x8,%esp
   6: a1 00 00 00 00 mov 0x0,%eax
                        7: R_386_32 ptr_to_globals
   b: 80 30 01 xorb $0x1,(%eax)
   e: eb 14 jmp 24 <collect_info+0x24>
  10: 8b 43 08 mov 0x8(%ebx),%eax
  13: e8 fc ff ff ff call 14 <collect_info+0x14>
                        14: R_386_PC32 .text.put
  18: 83 ec 0c sub $0xc,%esp
  1b: 53 push %ebx
  1c: ff 53 04 call *0x4(%ebx)
----> 1f: 8b 1b mov (%ebx),%ebx
  21: 83 c4 10 add $0x10,%esp
  24: 85 db test %ebx,%ebx
  26: 75 e8 jne 10 <collect_info+0x10>
  28: 59 pop %ecx
  29: 5b pop %ebx
  2a: 5b pop %ebx
  2b: c3 ret

i manage also to run gdb there
With disabled compiler optimizations all fine, it is not crashing.

If i enable compiler optimization:

(gdb) run nmeter "CPU %c IO %b MEM %[mf]"
Starting program: /home/root/busybox_unstripped nmeter "CPU %c IO %b MEM %[mf]"

Program received signal SIGSEGV, Segmentation fault.
collect_info (s=0x0) at procps/nmeter.c:753
753 procps/nmeter.c: No such file or directory.
        in procps/nmeter.c

        while (s) {
                put(s->label);
                s->collect(s);
                s = s->next; <<<--- here
        }
}


(gdb) up
0000001 0x0806543c in nmeter_main (argc=2, argv=0xbfd6b368) at procps/nmeter.c:861
861 in procps/nmeter.c

        // Generate first samples but do not print them, they're bogus
        collect_info(first); <--- here 861
        reset_outbuf();
 
(0008744)
vda
06-28-08 16:13

What does it print when you add this?

        while (s) {
                put(s->label);
                s->collect(s);
bb_error_msg("s:%p s->next:%p", s, s->next);
                s = s->next;
        }
 
(0008754)
nuclearcat
06-28-08 16:31

Not able to trigger bug with added line

Output:
Router-Dora ~ # ./busybox_unstripped nmeter "CPU %c IO %b MEM %[mf]"
nmeter: s:0x80c2078 s->next:0x80c20d8
nmeter: s:0x80c20d8 s->next:0x80c2100
nmeter: s:0x80c2100 s->next:(nil)
nmeter: s:0x80c2078 s->next:0x80c20d8
nmeter: s:0x80c20d8 s->next:0x80c2100
nmeter: s:0x80c2100 s->next:(nil)
CPU ii........ IO 0 0 MEM 1.9g
nmeter: s:0x80c2078 s->next:0x80c20d8
nmeter: s:0x80c20d8 s->next:0x80c2100
nmeter: s:0x80c2100 s->next:(nil)
CPU ii........ IO 0 0 MEM 1.9g
nmeter: s:0x80c2078 s->next:0x80c20d8
nmeter: s:0x80c20d8 s->next:0x80c2100
nmeter: s:0x80c2100 s->next:(nil)
CPU ii........ IO 0 0 MEM 1.9g
 
(0008764)
vda
06-28-08 16:38

We might have uninitialized ->next. I replaced xmalloc's with xzalloc's, please try attached 3.patch
 
(0008774)
nuclearcat
06-28-08 16:44
edited on: 06-28-08 16:55

Maybe some gcc optimization causing this?

diff in assembly of nmeter with line added and default
--- VAR1 2008-06-29 02:36:05.000000000 +0300
+++ VAR2 2008-06-29 02:37:24.000000000 +0300
@@ -5,26 +5,19 @@
    6: a1 00 00 00 00 mov 0x0,%eax
                         7: R_386_32 ptr_to_globals
    b: 80 30 01 xorb $0x1,(%eax)
- e: eb 24 jmp 34 <collect_info+0x34>
+ e: eb 14 jmp 24 <collect_info+0x24>
   10: 8b 43 08 mov 0x8(%ebx),%eax
   13: e8 fc ff ff ff call 14 <collect_info+0x14>
                         14: R_386_PC32 .text.put
   18: 83 ec 0c sub $0xc,%esp
   1b: 53 push %ebx
   1c: ff 53 04 call *0x4(%ebx)
- 1f: 83 c4 0c add $0xc,%esp
- 22: ff 33 pushl (%ebx)
- 24: 53 push %ebx
- 25: 68 0a 00 00 00 push $0xa
- 26: R_386_32 .rodata.str1.1
- 2a: e8 fc ff ff ff call 2b <collect_info+0x2b>
- 2b: R_386_PC32 bb_error_msg
- 2f: 8b 1b mov (%ebx),%ebx
- 31: 83 c4 10 add $0x10,%esp
- 34: 85 db test %ebx,%ebx
- 36: 75 d8 jne 10 <collect_info+0x10>
- 38: 59 pop %ecx
- 39: 5b pop %ebx
- 3a: 5b pop %ebx
- 3b: c3 ret
+ 1f: 8b 1b mov (%ebx),%ebx
+ 21: 83 c4 10 add $0x10,%esp
+ 24: 85 db test %ebx,%ebx
+ 26: 75 e8 jne 10 <collect_info+0x10>
+ 28: 59 pop %ecx
+ 29: 5b pop %ebx
+ 2a: 5b pop %ebx
+ 2b: c3 ret
 Disassembly of section .text.collect_time:

If i change -Os to -O0 it works fine
in: Makefile.flags

ifneq ($(CONFIG_DEBUG),y)
CFLAGS += $(call cc-option,-Os,) <<--- here
else

 
(0008784)
nuclearcat
06-28-08 16:50
edited on: 06-28-08 16:53

Tested patch, it doesn't help.
Crashing in same place.

  LINK busybox_unstripped
Trying libraries: crypt m
 Library crypt is needed
 Library m is needed
Final link with: crypt m
sunfire-1 busybox-1.11.0 # scp busybox_unstripped root@XXX.XXX.XXX.XXX:
root@XXX.XXX.XXX.XXX's password:
busybox_unstripped 100% 565KB 565.3KB/s 00:00
sunfire-1 busybox-1.11.0 # cat procps/nmeter.c|grep xzalloc
        SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
        s_stat *s = xzalloc(sizeof(s_stat));
        cpu_stat *s = xzalloc(sizeof(*s));
        s->bar = xzalloc(sz+1);
        /*s->bar[sz] = '\0'; - xzalloc did it */
        int_stat *s = xzalloc(sizeof(*s));
        ctx_stat *s = xzalloc(sizeof(*s));
        blk_stat *s = xzalloc(sizeof(*s));
        fork_stat *s = xzalloc(sizeof(*s));
        if_stat *s = xzalloc(sizeof(*s));
        mem_stat *s = xzalloc(sizeof(*s));
        swp_stat *s = xzalloc(sizeof(*s));
        fd_stat *s = xzalloc(sizeof(*s));
        time_stat *s = xzalloc(sizeof(*s));
                        /*s->next = NULL; - all initXXX funcs use xzalloc */
                /*s->next = NULL; - all initXXX funcs use xzalloc */

So it is applied, i made sure by rebuilding from scratch.

 
(0008794)
nuclearcat
06-28-08 17:06
edited on: 06-28-08 17:08

Also if i use gcc-3.4.5-gentoo it is ok too (with -Os even).
When bug triggered i am using 4.1.2-gentoo. I will try rebuild gcc 4.1.2 with vanilla flag, but i am feeling something new added in gcc-4 optimizations.

(Sorry, went to sleep, will be online if required after 8 hours)

 
(0008804)
vda
06-28-08 17:20

produce nmeter.s with gcc 3.x.x and 4.x.x and attach to the bug please.
 
(0008824)
nuclearcat
06-29-08 06:11

files attached
binary produced by gcc 4.3.1 crashing too
 
(0008844)
vda
06-29-08 07:24
edited on: 06-29-08 07:31

Please double check - does this line really makes bug disappear?

        while (s) {
                put(s->label);
                s->collect(s);
bb_error_msg("s:%p s->next:%p", s, s->next);
                s = s->next;
        }

if so - try simpler modifications, like:

        while (s) {
                put(s->label);
                s->collect(s);
write(2, "before\n", 7);
                s = s->next;
write(2, "after\n", 6);
        }

What I'm trying to verify by the above fragment - does it _really_ crashes on s = s->next line? For now, I am not 100% sure.

 
(0008854)
nuclearcat
06-29-08 10:02

With gcc 4.3.1 it crash on first variant too.

Router-Dora ~ # ./busybox_unstripped nmeter "CPU %c MEM %[mf] IO %b"
nmeter: s:0x80c2078 s->next:0x80c20d8
Segmentation fault

[1198888.680599] busybox_unstrip[6483]: segfault at 0 ip 0806500f sp bf839c8c error 4 in busybox_unstripped[8048000+76000]


in busybox_unstripped
08064fed <collect_info>:

means collect_info + offset 0x22

then in nmeter.o

00000000 <collect_info>:
   0: 53 push %ebx
   1: 89 c3 mov %eax,%ebx
   3: 83 ec 08 sub $0x8,%esp
   6: a1 00 00 00 00 mov 0x0,%eax
                        7: R_386_32 ptr_to_globals
   b: 80 30 01 xorb $0x1,(%eax)
   e: eb 24 jmp 34 <collect_info+0x34>
  10: 8b 43 08 mov 0x8(%ebx),%eax
  13: e8 fc ff ff ff call 14 <collect_info+0x14>
                        14: R_386_PC32 .text.put
  18: 83 ec 0c sub $0xc,%esp
  1b: 53 push %ebx
  1c: ff 53 04 call *0x4(%ebx)
  1f: 83 c4 0c add $0xc,%esp
  22: ff 33 pushl (%ebx) THIS?
  24: 53 push %ebx
  25: 68 83 00 00 00 push $0x83
                        26: R_386_32 .rodata.str1.1
  2a: e8 fc ff ff ff call 2b <collect_info+0x2b>
                        2b: R_386_PC32 bb_error_msg
  2f: 8b 1b mov (%ebx),%ebx
  31: 83 c4 10 add $0x10,%esp
  34: 85 db test %ebx,%ebx
  36: 75 d8 jne 10 <collect_info+0x10>
  38: 5b pop %ebx
  39: 58 pop %eax
  3a: 5b pop %ebx
  3b: c3 ret
Disassembly of section .text.nmeter_main:


What i found:
by modifying
static void collect_info(s_stat *s)
{
        gen ^= 1;
        while (s) {
                put(s->label);
                bb_error_msg("msg1 label %s",s->label);
                bb_error_msg("s:%p s->next:%p", s, s->next);
                s->collect(s);
                bb_error_msg("msg2");
                //bb_error_msg("s:%p s->next:%p", s, s->next);
                bb_error_msg("s:%p", s);
                s = s->next;
        }
}
Router-Dora ~ # ./busybox_unstripped nmeter "CPU %c MEM %[mf] IO %b"
nmeter: msg1 label CPU
nmeter: s:0x80c2078 s->next:0x80c20d8
nmeter: msg2
nmeter: s:0x80c2078
nmeter: msg1 label MEM
nmeter: s:0x80c20d8 s->next:0x80c20f0
nmeter: msg2
nmeter: s:(nil)
Segmentation fault



so s became NULL while collecting meminfo? sure s->next cannot be retrieved from it.

My meminfo now
Router-Dora ~ # cat /proc/meminfo
MemTotal: 2076508 kB
MemFree: 1900396 kB
Buffers: 620 kB
Cached: 51900 kB
SwapCached: 0 kB
Active: 12264 kB
Inactive: 43976 kB
HighTotal: 1179584 kB
HighFree: 1121704 kB
LowTotal: 896924 kB
LowFree: 778692 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 3720 kB
Mapped: 3068 kB
Slab: 112572 kB
SReclaimable: 3668 kB
SUnreclaim: 108904 kB
PageTables: 172 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1038252 kB
Committed_AS: 8836 kB
VmallocTotal: 114680 kB
VmallocUsed: 2232 kB
VmallocChunk: 112356 kB
 
(0008864)
nuclearcat
06-29-08 10:21

I think it is not related to memory, cause as i remember it happens sometimes with another nmeter parameters.
 
(0008874)
nuclearcat
06-29-08 10:47

I am wrong.
Well it is related, if we check more my previous tests - it was always containing %[mf]
 
(0008884)
vda
06-30-08 00:40

s is a local variable and cannot be accessible by called functions.
In fact, in your case s is in the %ebx register.

  1b: 53 push %ebx
  1c: ff 53 04 call *0x4(%ebx) s->collect(s)
  1f: 83 c4 0c add $0xc,%esp
  22: ff 33 pushl (%ebx) <= s->next
  24: 53 push %ebx <= s (is in %ebx)
  25: 68 83 00 00 00 push $0x83
                        26: R_386_32 .rodata.str1.1
  2a: e8 fc ff ff ff call 2b <collect_info+0x2b>
                        2b: R_386_PC32 bb_error_msg

From the looks of it, %ebx gets clobbered.
In nmeter.s.gcc4, I see that collect_mem saves/restores %ebx. Fishy.

Can you step through the above fragment in gdb and confirm that %ebx gets clobbered? If yes, which collect_XXX func does that?
 
(0008894)
nuclearcat
07-01-08 05:24

It is seems gcc bug.

When gcc built on x86_64 machine, even on chrooted 32-bit environment, it seems have some bugs, until i set also setarch i686 (by personality syscalls) and rebuilt gcc.
Even it is building 32-bit binaries by default, it is broken. I think it is kind of difficult will be to report such bug to gcc bugzilla? Is it worth it?

Btw i face such bug only once, with nmeter.
You can just close bug, if it is not interesting for you anymore.
 

- Issue History
Date Modified Username Field Change
05-28-08 09:22 nuclearcat New Issue
05-28-08 09:22 nuclearcat Status new => assigned
05-28-08 09:22 nuclearcat Assigned To  => BusyBox
05-28-08 11:13 vda Note Added: 0007884
05-28-08 12:27 nuclearcat Note Added: 0007894
05-30-08 14:55 vda Note Added: 0007904
06-28-08 10:11 nuclearcat Note Added: 0008654
06-28-08 15:00 vda Note Added: 0008724
06-28-08 16:04 nuclearcat Note Added: 0008734
06-28-08 16:13 vda Note Added: 0008744
06-28-08 16:31 nuclearcat Note Added: 0008754
06-28-08 16:37 vda File Added: 3.patch
06-28-08 16:38 vda Note Added: 0008764
06-28-08 16:44 nuclearcat Note Added: 0008774
06-28-08 16:50 nuclearcat Note Added: 0008784
06-28-08 16:53 nuclearcat Note Edited: 0008784
06-28-08 16:55 nuclearcat Note Edited: 0008774
06-28-08 17:06 nuclearcat Note Added: 0008794
06-28-08 17:08 nuclearcat Note Edited: 0008794
06-28-08 17:20 vda Note Added: 0008804
06-29-08 00:55 nuclearcat File Added: nmeter.s.gcc3
06-29-08 00:55 nuclearcat File Added: nmeter.s.gcc4
06-29-08 00:58 nuclearcat Note Added: 0008814
06-29-08 01:00 nuclearcat Note Deleted: 0008814
06-29-08 06:11 nuclearcat Note Added: 0008824
06-29-08 07:24 vda Note Added: 0008844
06-29-08 07:31 vda Note Edited: 0008844
06-29-08 10:02 nuclearcat Note Added: 0008854
06-29-08 10:21 nuclearcat Note Added: 0008864
06-29-08 10:47 nuclearcat Note Added: 0008874
06-30-08 00:40 vda Note Added: 0008884
07-01-08 05:24 nuclearcat Note Added: 0008894
07-01-08 07:24 vda Status assigned => closed
07-01-08 07:24 vda Resolution open => unable to reproduce


Copyright © 2000 - 2006 Mantis Group
Powered by Mantis Bugtracker