Opened 17 years ago

Closed 16 years ago

#179 closed defect (fixed)

mondo fails with fatal error...

Reported by: mread Owned by: Bruno Cornec
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 17 years ago.
configure > make > make install
runMondo.txt (15.3 KB ) - added by mread 17 years ago.
output of mondoarcive (no -g gui) to hang
mondoarchive.log (98.5 KB ) - added by mread 17 years ago.
mondoarchive.log
mindi.log (59.2 KB ) - added by mread 17 years ago.
mindi.log
gdb+valgrind_mondoarchive_output#1.txt (597.2 KB ) - added by mread 17 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 17 years ago.
various runs of mondoarchive with gdb and valgrind (& some comments) #2
mondoarchive.2.log (101.5 KB ) - added by mread 17 years ago.
mondoarchive.log following above runs with gdb & valgrind
mindi.2.log (59.2 KB ) - added by mread 17 years ago.
mindi.log for above runs with gdb & valgrind

Download all attachments as: .zip

Change History (16)

comment:1 by Bruno Cornec, 17 years ago

Milestone: 2.2.5
Status: newassigned
Version: 2.2.4

by mread, 17 years ago

configure > make > make install

by mread, 17 years ago

Attachment: runMondo.txt added

output of mondoarcive (no -g gui) to hang

by mread, 17 years ago

Attachment: mondoarchive.log added

mondoarchive.log

by mread, 17 years ago

Attachment: mindi.log added

mindi.log

comment:2 by mread, 17 years ago

Uploaded 4 txt files of Mondoarchive make and failure

comment:3 by Bruno Cornec, 17 years ago

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.

by mread, 17 years ago

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

by mread, 17 years ago

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

by mread, 17 years ago

Attachment: mondoarchive.2.log added

mondoarchive.log following above runs with gdb & valgrind

by mread, 17 years ago

Attachment: mindi.2.log added

mindi.log for above runs with gdb & valgrind

comment:4 by mread, 17 years ago

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 by Bruno Cornec, 17 years ago

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 by Bruno Cornec, 17 years ago

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 by Bruno Cornec, 17 years ago

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

comment:8 by Bruno Cornec, 16 years ago

Resolution: fixed
Status: assignedclosed

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

Note: See TracTickets for help on using tickets.