Opened 12 years ago

Closed 11 years ago

#179 closed defect (fixed)

mondo fails with fatal error...

Reported by: mread Owned by: bruno
Priority: normal Milestone: 2.2.5
Component: mondo Version: 2.2.4
Severity: major Keywords: mondo fails fatal error
Cc:

Description

mondo v2.2.4-1.fc5 See: http://sourceforge.net/mailarchive/forum.php?thread_name=evhkfd%24u19%241%40sea.gmane.org&forum_name=mondo-devel

From that thread:

Errors: 9/4/07 * glibc detected * /usr/sbin/mondoarchive: realloc(): invalid next size: 0xb68141b8 *

Well, that's a fatal error :-)

And later: Could you download the tar.gz package and recompile mondo using -g. Then Launch it preceded by valgrind or use gdb (Cf: http://trac.mondorescue.org/wiki/TroubleShooting#CreatingBacktraces)

Further information required: Please provide explanation of "recompile mondo using -g"

Attachments (8)

configure+make+make-install.txt (24.9 KB) - added by mread 12 years ago.
configure > make > make install
runMondo.txt (15.3 KB) - added by mread 12 years ago.
output of mondoarcive (no -g gui) to hang
mondoarchive.log (98.5 KB) - added by mread 12 years ago.
mondoarchive.log
mindi.log (59.2 KB) - added by mread 12 years ago.
mindi.log
gdb+valgrind_mondoarchive_output#1.txt (597.2 KB) - added by mread 12 years ago.
various runs of mondoarchive with gdb and valgrind (& some comments) #1
gdb+valgrind_mondoarchive_output#2.txt (455.7 KB) - added by mread 12 years ago.
various runs of mondoarchive with gdb and valgrind (& some comments) #2
mondoarchive.2.log (101.5 KB) - added by mread 12 years ago.
mondoarchive.log following above runs with gdb & valgrind
mindi.2.log (59.2 KB) - added by mread 12 years ago.
mindi.log for above runs with gdb & valgrind

Download all attachments as: .zip

Change History (16)

comment:1 Changed 12 years ago by bruno

  • Milestone set to 2.2.5
  • Status changed from new to assigned
  • Version set to 2.2.4

Changed 12 years ago by mread

configure > make > make install

Changed 12 years ago by mread

output of mondoarcive (no -g gui) to hang

Changed 12 years ago by mread

mondoarchive.log

Changed 12 years ago by mread

mindi.log

comment:2 Changed 12 years ago by mread

Uploaded 4 txt files of Mondoarchive make and failure

comment:3 Changed 12 years ago by bruno

Now that you have a compiled verison ith -g could you launch either valgrind before your commen or use gdb as described on the wiki and provide back the info around the problem please ? TIA.

Changed 12 years ago by mread

various runs of mondoarchive with gdb and valgrind (& some comments) #1

Changed 12 years ago by mread

various runs of mondoarchive with gdb and valgrind (& some comments) #2

Changed 12 years ago by mread

mondoarchive.log following above runs with gdb & valgrind

Changed 12 years ago by mread

mindi.log for above runs with gdb & valgrind

comment:4 Changed 12 years ago by mread

Oops, forgot the important stuff:)

(See attachment numbered 1) 1st ran mondoarchive with gdb from src/mondoarchive (mondo/mondoarchive didn't seem to exist), then again to make sure. Each time the process hung (gdb or mondoarchive?) and I needed to Ctrl-c to move on.

2nd ran mondoarchive with valgrind from src/mondoarchive - weird thing, valgrind/mondoarchive seemed to succeed! But, nothing was written to media (/mnt/cifs) - strange?

(See attachment numbered 2) 3rd ran mondoarchive with valgrind from home directory (ie using installed mondoarchive at /usr/local/sbin/mondoarchive) to see if there were any differences between what had been failing and what now seemed to sort-of succeed. This time valgrind/mondoarchive again seemed to succeed and backup was written to media at /mnt/cifs/morgansmachineDIFF-1.iso (haven't verified independently).

So 4th ran mondoarchive with gdb from home directory to see if it might succeed - but, it hung again. Just to make sure I left if for 4 Hrs before coming back and ending it with Ctrl-c again. Seemed to hang just the same as before with gdb.

Attached also are logs.

Thanks.

comment:5 Changed 12 years ago by bruno

Problem seems to be here:

Archiving regular files to media
Archiving regular files
==25107== Conditional jump or move depends on uninitialised value(s)
==25107==    at 0x4801447C: strstr (in /lib/libc-2.4.so)
==25107==    by 0x8072020: read_cfg_var (libmondo-tools.c:1280)
==25107==    by 0x806260B: get_last_filelist_number (libmondo-filelist.c:838)
==25107==    by 0x8054B25: make_afioballs_and_images (libmondo-archive.c:1655)
==25107==    by 0x8055419: make_those_afios_phase (libmondo-archive.c:2552)
==25107==    by 0x80583C2: backup_data (libmondo-archive.c:652)
==25107==    by 0x804AF47: main (main.c:463)
---progress-form---1--- I am backing up your live filesystem now.
---progress-form---4--- TASK:  [*...................]   1% done;  0:00 to go
==25107==
==25107== Thread 2:
==25107== Conditional jump or move depends on uninitialised value(s)
==25107==    at 0x807B706: mr_stresc (mr_string.c:66)
==25107==    by 0x8063607: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8056B87: create_afio_files_in_background (libmondo-archive.c:1219)
==25107==    by 0x48244432: start_thread (in /lib/libpthread-2.4.so)
==25107==    by 0x48072A1D: clone (in /lib/libc-2.4.so)
==25107==
==25107== Conditional jump or move depends on uninitialised value(s)
==25107==    at 0x807B718: mr_stresc (mr_string.c:63)
==25107==    by 0x8063607: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8056B87: create_afio_files_in_background (libmondo-archive.c:1219)
==25107==    by 0x48244432: start_thread (in /lib/libpthread-2.4.so)
==25107==    by 0x48072A1D: clone (in /lib/libc-2.4.so)
---progress-form---1--- I am backing up your live filesystem now.
---progress-form---2---

==25107== Thread 2:
==25107== Invalid write of size 1
==25107==    at 0x807B765: mr_stresc (mr_string.c:93)
==25107==    by 0x8063607: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8056B87: create_afio_files_in_background (libmondo-archive.c:1219)
==25107==    by 0x48244432: start_thread (in /lib/libpthread-2.4.so)
==25107==    by 0x48072A1D: clone (in /lib/libc-2.4.so)
==25107==  Address 0x531FC1B is 0 bytes after a block of size 131 alloc'd
==25107==    at 0x40051F9: malloc (vg_replace_malloc.c:149)
==25107==    by 0x807B72D: mr_stresc (mr_string.c:78)
==25107==    by 0x8063607: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8056B87: create_afio_files_in_background (libmondo-archive.c:1219)
==25107==    by 0x48244432: start_thread (in /lib/libpthread-2.4.so)
==25107==    by 0x48072A1D: clone (in /lib/libc-2.4.so)
==25107==
==25107== Invalid write of size 1
==25107==    at 0x807B771: mr_stresc (mr_string.c:97)
==25107==    by 0x8063607: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8056B87: create_afio_files_in_background (libmondo-archive.c:1219)
==25107==    by 0x48244432: start_thread (in /lib/libpthread-2.4.so)
==25107==    by 0x48072A1D: clone (in /lib/libc-2.4.so)
==25107==  Address 0x531FC20 is 5 bytes after a block of size 131 alloc'd
==25107==    at 0x40051F9: malloc (vg_replace_malloc.c:149)
==25107==    by 0x807B72D: mr_stresc (mr_string.c:78)
==25107==    by 0x8063607: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8056B87: create_afio_files_in_background (libmondo-archive.c:1219)
==25107==    by 0x48244432: start_thread (in /lib/libpthread-2.4.so)
==25107==    by 0x48072A1D: clone (in /lib/libc-2.4.so)
==25107==
==25107== Invalid read of size 1
==25107==    at 0x47FE79F2: vfprintf (in /lib/libc-2.4.so)
==25107==    by 0x480055CF: vasprintf (in /lib/libc-2.4.so)
==25107==    by 0x47FED19D: asprintf (in /lib/libc-2.4.so)
==25107==    by 0x806361D: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8056B87: create_afio_files_in_background (libmondo-archive.c:1219)
==25107==    by 0x48244432: start_thread (in /lib/libpthread-2.4.so)
==25107==    by 0x48072A1D: clone (in /lib/libc-2.4.so)
==25107==  Address 0x531FC1B is 0 bytes after a block of size 131 alloc'd
==25107==    at 0x40051F9: malloc (vg_replace_malloc.c:149)
==25107==    by 0x807B72D: mr_stresc (mr_string.c:78)
==25107==    by 0x8063607: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8056B87: create_afio_files_in_background (libmondo-archive.c:1219)
==25107==    by 0x48244432: start_thread (in /lib/libpthread-2.4.so)
==25107==    by 0x48072A1D: clone (in /lib/libc-2.4.so)
==25107==
==25107== Invalid read of size 4
==25107==    at 0x48014D8C: mempcpy (in /lib/libc-2.4.so)
==25107==    by 0x47FE4E47: vfprintf (in /lib/libc-2.4.so)
==25107==    by 0x480055CF: vasprintf (in /lib/libc-2.4.so)
==25107==    by 0x47FED19D: asprintf (in /lib/libc-2.4.so)
==25107==    by 0x806361D: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8056B87: create_afio_files_in_background (libmondo-archive.c:1219)
==25107==    by 0x48244432: start_thread (in /lib/libpthread-2.4.so)
==25107==    by 0x48072A1D: clone (in /lib/libc-2.4.so)
==25107==  Address 0x531FC18 is 128 bytes inside a block of size 131 alloc'd
==25107==    at 0x40051F9: malloc (vg_replace_malloc.c:149)
==25107==    by 0x807B72D: mr_stresc (mr_string.c:78)
==25107==    by 0x8063607: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8056B87: create_afio_files_in_background (libmondo-archive.c:1219)
==25107==    by 0x48244432: start_thread (in /lib/libpthread-2.4.so)
==25107==    by 0x48072A1D: clone (in /lib/libc-2.4.so)
---progress-form---1--- I am backing up your live filesystem now.

[...]
Archiving large files to media
==25107==
==25107== Thread 1:
==25107== Conditional jump or move depends on uninitialised value(s)
==25107==    at 0x807B718: mr_stresc (mr_string.c:63)
==25107==    by 0x8063607: gen_aux_list (libmondo-filelist.c:589)
==25107==    by 0x80637D2: get_fattr_list (libmondo-filelist.c:635)
==25107==    by 0x8052A35: make_those_slices_phase (libmondo-archive.c:2617)
==25107==    by 0x80583CD: backup_data (libmondo-archive.c:653)
==25107==    by 0x804AF47: main (main.c:463)
I am now backing up all large files.
---progress-form---1--- I am now backing up all large files.
---progress-form---2--- Please wait. This may take some time.
---progress-form---3---
---progress-form---E---
---progress-form---4--- TASK:  [*...................]   1% done;  0:00 to go
==25107==
==25107== Syscall param write(buf) points to uninitialised byte(s)
==25107==    at 0x48063F3B: (within /lib/libc-2.4.so)
==25107==    by 0x48007AB4: new_do_write (in /lib/libc-2.4.so)
==25107==    by 0x48007D5B: _IO_do_write@@GLIBC_2.1 (in /lib/libc-2.4.so)
==25107==    by 0x48008FFE: _IO_file_close_it@@GLIBC_2.1 (in /lib/libc-2.4.so)
==25107==    by 0x47FFDF7F: fclose@@GLIBC_2.1 (in /lib/libc-2.4.so)
==25107==    by 0x804F326: slice_up_file_etc (libmondo-archive.c:3487)
==25107==    by 0x8052350: make_slices_and_images (libmondo-archive.c:2328)
==25107==    by 0x8052B03: make_those_slices_phase (libmondo-archive.c:2637)
==25107==    by 0x80583CD: backup_data (libmondo-archive.c:653)
==25107==    by 0x804AF47: main (main.c:463)
==25107==  Address 0x400A03C is not stack'd, malloc'd or (recently) free'd
---progress-form---1--- I am now backing up all large files.
---progress-form---2--- ISO 1: [****................] 18% used

comment:6 Changed 12 years ago by bruno

Most of the problems reported here should be fixed in rev [1552]

Especially, in order to test if the problem seen is fixed, could you take the mondo/src/common/mr_string.c file and used the one of this rev, instead of the one you have and relaunch the same tests. That should fix the fatal error.

If you want to then test further, please also do the same with mondo/src/common/libmondo-archive.c and mondo/src/common/libmondo-filelist.c

comment:7 Changed 12 years ago by bruno

You may want to test with the current beta of 2.2.5 which is on the ftp server.

comment:8 Changed 11 years ago by bruno

  • Resolution set to fixed
  • Status changed from assigned to closed

Should be fixed with official 2.2.5. If not, please reopen the bug report.

Note: See TracTickets for help on using tickets.