Jonathan Nieder hat am Sat 07. May, 17:06 (-0500) geschrieben: > Jörg Sommer wrote: > > > last night, grep was killed by SIGSEG. It was run by a cron job and I > > can't reproduce the error. But I've a coredump. > > What version of grep do you use?
The current version in unstable 2.6.3-3. > I don't know of anything like debug.debian.net for powerpc which would > make it easy to get a full backtrace, (though it should be possible to > get with sufficient interest and time) unfortunately. Is debug.d.n still alive? The filestamps for unstable are rather old: http://debug.debian.net/debian/dists/sid/debug/main/binary-amd64/ > Also, do you have the cron job and the /var/lib/rkhunter/db/i18n/en > file from the time of failure? Can we take a look at them? I append the *current* version. According to the timestamps of the file, it wasn't modified since the crash, but I can't reproduce it: # stat /var/lib/rkhunter/db/i18n/en File: „/var/lib/rkhunter/db/i18n/en“ Size: 35729 Blocks: 72 IO Block: 4096 reguläre Datei Device: 805h/2053d Inode: 174839 Links: 1 Access: (0640/-rw-r-----) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2011-05-01 13:14:00.000000000 +0200 Modify: 2011-04-30 09:41:45.000000000 +0200 Change: 2011-05-01 13:14:08.681779178 +0200 > [...] > > Core was generated by `grep ^ROOTKIT_FILES_DIRS_FILE: > > /var/lib/rkhunter/db/i18n/en'. > [...] > > #0 memset () at ../sysdeps/powerpc/powerpc32/memset.S:100 > > No locals. > > #1 0x0fed241c in __libc_calloc (n=<value optimized out>, elem_size=<value > > optimized out>) at malloc.c:4123 > > av = 0xffc9268 > > oldtop = 0x103fcd18 > > bytes = 4 > > Looks like calloc is being called for a 4-byte allocation. Usually > for such small allocations calloc handles the clearing itself, so that > information might help to narrow things down. > > Just to check: are there any MALLOC_* or LD_* environment variables > set in your cron jobs' environment? (I'm asking probably stupid > questions just to get basic information to trace what happened, > nothing else.) I don't know. I didn't set them, but the caller, rkhunter might do so. > [...] > > #2 0x10018700 in ?? () > > No symbol table info available. > > #3 0x1000f260 in ?? () > > No symbol table info available. > [...] > > Dump of assembler code for function memset: > > I'd also be interested in disassembly for frame 2 or 3, so we can get > some idea of what grep was doing. This wasn't very easy. I had to rebuild grep with the old version, but here it is: Core was generated by `grep ^ROOTKIT_FILES_DIRS_FILE: /var/lib/rkhunter/db/i18n/en'. Program terminated with signal 11, Segmentation fault. #0 memset () at ../sysdeps/powerpc/powerpc32/memset.S:100 100 ../sysdeps/powerpc/powerpc32/memset.S: Datei oder Verzeichnis nicht gefunden. in ../sysdeps/powerpc/powerpc32/memset.S #0 memset () at ../sysdeps/powerpc/powerpc32/memset.S:100 No locals. #1 0x0fed241c in __libc_calloc (n=<value optimized out>, elem_size=<value optimized out>) at malloc.c:4123 av = 0xffc9268 oldtop = 0x103fcd18 bytes = 4 csz = <value optimized out> oldtopsize = 82664 mem = 0xffc9265 clearsize = <value optimized out> nclears = <value optimized out> __func__ = "__libc_calloc" #2 0x10018700 in xrealloc (p=<value optimized out>, n=<value optimized out>) at xmalloc.c:61 No locals. #3 0x1000f260 in build_state_zero (d=0x1, begin=0x103f85ca "ROOTKIT_FILES_DIRS_FILE:Checking for file '$1'\nROOTKIT_FILES_DIRS_DIR:Checking for directory '$1'\nROOTKIT_FILES_DIRS_KSYM:Checking for kernel symbol '$1'\nROOTKIT_FILES_DIRS_FILE_FOUND:File '$1' found\n"..., end=0x103f85f9 "ROOTKIT_FILES_DIRS_DIR:Checking for directory '$1'\nROOTKIT_FILES_DIRS_KSYM:Checking for kernel symbol '$1'\nROOTKIT_FILES_DIRS_FILE_FOUND:File '$1' found\nROOTKIT_FILES_DIRS_DIR_FOUND:Directory '$1' fou"..., newline=0, count=0x0, backref=0xbfa127ec) at dfa.c:2325 No locals. #4 dfaexec (d=0x1, begin=0x103f85ca "ROOTKIT_FILES_DIRS_FILE:Checking for file '$1'\nROOTKIT_FILES_DIRS_DIR:Checking for directory '$1'\nROOTKIT_FILES_DIRS_KSYM:Checking for kernel symbol '$1'\nROOTKIT_FILES_DIRS_FILE_FOUND:File '$1' found\n"..., end=0x103f85f9 "ROOTKIT_FILES_DIRS_DIR:Checking for directory '$1'\nROOTKIT_FILES_DIRS_KSYM:Checking for kernel symbol '$1'\nROOTKIT_FILES_DIRS_FILE_FOUND:File '$1' found\nROOTKIT_FILES_DIRS_DIR_FOUND:Directory '$1' fou"..., newline=0, count=0x0, backref=0xbfa127ec) at dfa.c:2797 s = <value optimized out> s1 = <value optimized out> p = <value optimized out> trans = <value optimized out> t = <value optimized out> eol = 10 '\n' sbit = {268621076, 0 <repeats 18 times>, 1 <repeats 11 times>, 4, 1 <repeats 37 times>, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2 <repeats 26 times>, 1, 1, 1, 1, 2, 1, 2 <repeats 26 times>, 1 <repeats 113 times>} sbit_init = 0 saved_end = <value optimized out> #5 0x10001cdc in EGexecute (buf=0x103f4000 "Version:2010110901\n#\n# We start with the definitions of the message types and results. There\n# are very few of these, so including these and all the parts of each\n# message in one file makes sense and"..., size=32733, match_size=<value optimized out>, start_ptr=<value optimized out>) at dfasearch.c:260 offset = <value optimized out> buflim = 0x103fbfdd "NETWORK_PROMISC_NO_IP:Promiscuous n" beg = 0x103f85ca "ROOTKIT_FILES_DIRS_FILE:Checking for file '$1'\nROOTKIT_FILES_DIRS_DIR:Checking for directory '$1'\nROOTKIT_FILES_DIRS_KSYM:Checking for kernel symbol '$1'\nROOTKIT_FILES_DIRS_FILE_FOUND:File '$1' found\n"... end = 0x103f85f9 "ROOTKIT_FILES_DIRS_DIR:Checking for directory '$1'\nROOTKIT_FILES_DIRS_KSYM:Checking for kernel symbol '$1'\nROOTKIT_FILES_DIRS_FILE_FOUND:File '$1' found\nROOTKIT_FILES_DIRS_DIR_FOUND:Directory '$1' fou"... match = <value optimized out> best_match = 0x103f4000 "Version:2010110901\n#\n# We start with the definitions of the message types and results. There\n# are very few of these, so including these and all the parts of each\n# message in one file makes sense and"... mb_start = 0x103f4000 "Version:2010110901\n#\n# We start with the definitions of the message types and results. There\n# are very few of these, so including these and all the parts of each\n# message in one file makes sense and"... eol = <value optimized out> backref = 268550440 start = <value optimized out> len = 268621264 best_len = 268621020 kwsm = {index = 0, offset = {17866}, size = {24}} i = 268621264 ret_val = <value optimized out> #6 0x10004c4c in grepbuf (beg=<value optimized out>, lim=0x103fbfdd "NETWORK_PROMISC_NO_IP:Promiscuous n") at main.c:1014 b = <value optimized out> endp = <value optimized out> nlines = 0 n = 32768 p = 0x103f4000 "Version:2010110901\n#\n# We start with the definitions of the message types and results. There\n# are very few of these, so including these and all the parts of each\n# message in one file makes sense and"... match_offset = <value optimized out> match_size = 4294967271 #7 0x100057ec in add_count (file=0xbfa1388f "/var/lib/rkhunter/db/i18n/en", stats=0x1002d6b8) at main.c:615 sum = <value optimized out> #8 nlscan (file=0xbfa1388f "/var/lib/rkhunter/db/i18n/en", stats=0x1002d6b8) at main.c:631 newlines = 3215010160 beg = <value optimized out> #9 grep (file=0xbfa1388f "/var/lib/rkhunter/db/i18n/en", stats=0x1002d6b8) at main.c:1159 i = <value optimized out> residue = 35 oldc = <value optimized out> not_text = 0 save = 0 beg = 0x1001ab14 "" eol = 10 '\n' #10 grepfile (file=0xbfa1388f "/var/lib/rkhunter/db/i18n/en", stats=0x1002d6b8) at main.c:1260 desc = 4 count = 0 status = <value optimized out> #11 0x10005efc in main (argc=<value optimized out>, argv=<value optimized out>) at main.c:2199 keys = <value optimized out> keycc = <value optimized out> keyalloc = <value optimized out> with_filenames = 0 opt = <value optimized out> status = 1 default_context = 0 fp = <value optimized out> file_list = 0x103f08b0 Bye, Jörg. -- “Hey, dad, you see how this man can twist his fingers? Amazing, isn't it?” “No, son, not really. He's been using Emacs for ten years…”
signature.asc
Description: Digital signature http://en.wikipedia.org/wiki/OpenPGP