After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 764558 - App crashes when resizing fat32 partition
App crashes when resizing fat32 partition
Status: RESOLVED DUPLICATE of bug 735471
Product: gparted
Classification: Other
Component: application
0.24.0
Other Linux
: Normal normal
: ---
Assigned To: gparted maintainers alias
gparted maintainers alias
Depends on:
Blocks:
 
 
Reported: 2016-04-03 20:49 UTC by Yan Pashkovsky
Modified: 2016-04-05 07:42 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Yan Pashkovsky 2016-04-03 20:49:24 UTC
After resizing gparted crashes with this output in terminal: *** Error in `/usr/sbin/gpartedbin': double free or corruption (!prev): 0x00007f3be000a0b0 ***
Aborted
Comment 1 Mike Fleetwood 2016-04-04 09:43:54 UTC
Hi Yan,

I haven't seen a crash like this.  Please provide some more information.

1) What distribution are you using?
E.G.: GParted Live CD 0.24.0, Unbuntu 15.10, Fedora 23, etc.

2) Are there any unusual characteristics of the FAT32 file system?
File system size?
Very deep directories?
(Have recently fixed FAT32 fs resize crash when the directory names are
longer than 512 bytes.  Bug 762448).

3) Please provide full terminal output.
(Command line, libparted version, etc).

4) If you can, please provide a backtrace.

Thanks,
Mike


How to capture a backtrace from a coredump
------------------------------------------

1)  Turn off any OS core dump capturing, ensuring:
        cat /proc/sys/kernel/core_pattern
    reports just "core"

    Some methods to do this, depending on distro version, are:
    *   service abrt-ccpp stop
    *   systemctl stop abrtd
    *   sudo service apport stop

2)  Increase core dump limit and run GParted as root
    Either:
        ulimit -c unlimited
        sudo gparted
    or:
        su - root
        ulimit -c unlimited
        gparted

3)  Perform crashing action

4)  Capture backtrace

        ls -lrt core*
        which gpartedbin
        gdb `which gpartedbin` {COREFILE} --batch --quiet \
            -ex backtrace -ex quit > backtrace.log

Please paste the terminal output when running gparted and the contents
of the backtrace.log file.
Comment 2 Yan Pashkovsky 2016-04-04 11:33:44 UTC
1) LinuxMint 17.3 64 bit. Kernel 4.2 (this package is installed from getdeb repo). But the same happens to 0.18 from ubuntu repo.)
2) FS is empty. The resize crash happens every time, doesn't deepnd on size. The last time I was shrinknig 5.5 GB to 5.4 GB.
3) This error is the only thing I see. Before this error I see:
======================
libparted : 2.3
======================
4) Later :)
Comment 3 Mike Fleetwood 2016-04-04 13:01:18 UTC
No need for a backtrace.  I've managed to reproduce the crash on
Ubuntu 14.04 LTS with GParted 0.24.0 and GIT master.  (Linux Mint 17.3
is derived from Ubuntu 14.04 LTS).


[With a 5600 MiB FAT32 partition, resize to 5500 MiB.]
# ./gpartedbin
======================
libparted : 2.3
======================
Segmentation fault (core dumped)


# gdb ./gpartedbin  core --batch --quiet -ex backtrace -ex quit > backtrace.log
539	/build/buildd/glib2.0-2.40.2/./glib/gslice.c: No such file or directory.
# cat backtrace.log
[New LWP 12554]
[New LWP 12598]
[New LWP 27592]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/home/xubuntu/programming/c/gparted/src/gpartedbin'.
Program terminated with signal SIGSEGV, Segmentation fault.
  • #0 magazine_chain_pop_head
    at /build/buildd/glib2.0-2.40.2/./glib/gslice.c line 539
  • #0 magazine_chain_pop_head
    at /build/buildd/glib2.0-2.40.2/./glib/gslice.c line 539
  • #1 thread_memory_magazine1_alloc
    at /build/buildd/glib2.0-2.40.2/./glib/gslice.c line 842
  • #2 g_slice_alloc
    at /build/buildd/glib2.0-2.40.2/./glib/gslice.c line 998
  • #3 g_slist_prepend
    at /build/buildd/glib2.0-2.40.2/./glib/gslist.c line 254
  • #4 IA__gdk_window_begin_paint_region
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 3060
  • #5 IA__gtk_main_do_event
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkmain.c line 1623
  • #6 _gdk_window_process_updates_recurse
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 5484
  • #7 _gdk_window_process_updates_recurse
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 5457
  • #8 _gdk_windowing_window_process_updates_recurse
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/x11/gdkwindow-x11.c line 5643
  • #9 gdk_window_process_updates_internal
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 5651
  • #10 IA__gdk_window_process_all_updates
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 5757
  • #11 gdk_window_update_idle
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 5377
  • #12 gdk_threads_dispatch
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdk.c line 512
  • #13 g_main_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3064
  • #14 g_main_context_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3663
  • #15 g_main_context_iterate
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3734
  • #16 g_main_loop_run
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3928
  • #17 IA__gtk_main
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkmain.c line 1271
  • #18 GParted::GParted_Core::resize_move_filesystem_using_libparted
    at GParted_Core.cc line 2677
  • #19 GParted::GParted_Core::resize_filesystem
    at GParted_Core.cc line 2982
  • #20 GParted::GParted_Core::resize
    at GParted_Core.cc line 2729
  • #21 GParted::GParted_Core::resize_move
    at GParted_Core.cc line 2449
  • #22 GParted::GParted_Core::apply_operation_to_disk
    at GParted_Core.cc line 761
  • #23 emit
    at /usr/include/sigc++-2.0/sigc++/signal.h line 921
  • #24 emit
    at /usr/include/sigc++-2.0/sigc++/signal.h line 2781
  • #25 GParted::Dialog_Progress::on_signal_show
    at Dialog_Progress.cc line 226
  • #26 operator()
    at /usr/include/sigc++-2.0/sigc++/functors/slot.h line 440
  • #27 Glib::SignalProxyNormal::slot0_void_callback
    at signalproxy.cc line 95
  • #28 g_closure_invoke
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 768
  • #29 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3621
  • #30 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3307
  • #31 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #32 IA__gtk_widget_show
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkwidget.c line 3236
  • #33 IA__gtk_dialog_run
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkdialog.c line 1065
  • #34 GParted::Win_GParted::activate_apply
    at Win_GParted.cc line 2884
  • #35 operator()
    at /usr/include/sigc++-2.0/sigc++/functors/slot.h line 440
  • #36 Glib::SignalProxyNormal::slot0_void_callback
    at signalproxy.cc line 95
  • #37 g_closure_invoke
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 768
  • #38 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3621
  • #39 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3307
  • #40 g_signal_emit_by_name
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3403
  • #41 _g_closure_invoke_va
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 831
  • #42 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3215
  • #43 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #44 gtk_real_button_released
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkbutton.c line 1712
  • #45 _g_closure_invoke_va
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 831
  • #46 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3215
  • #47 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #48 gtk_button_button_release
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkbutton.c line 1604
  • #49 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 86
  • #50 g_closure_invoke
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 768
  • #51 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3589
  • #52 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3317
  • #53 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #54 gtk_widget_event_internal
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkwidget.c line 5010
  • #55 IA__gtk_widget_event
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkwidget.c line 4807
  • #56 IA__gtk_propagate_event
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkmain.c line 2509
  • #57 IA__gtk_main_do_event
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkmain.c line 1699
  • #58 gdk_event_dispatch
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/x11/gdkevents-x11.c line 2425
  • #59 g_main_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3064
  • #60 g_main_context_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3663
  • #61 g_main_context_iterate
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3734
  • #62 g_main_loop_run
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3928
  • #63 IA__gtk_main
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkmain.c line 1271
  • #64 Gtk::Main::run
    at main.cc line 484
  • #65 main
    at main.cc line 57

Comment 4 Mike Fleetwood 2016-04-04 13:14:27 UTC
Suspect this is a libparted bug resizing FAT32.

Here's the backtrace of all 3 threads with thread 3 showing these
function calls:
    needs_duplicating()                                 in libparted
    search_next_fragment()
    fat_duplicate_clusters()
    fat_resize()
    GParted_Core::thread_lp_ped_file_system_reisze()    in GParted


# gdb ~xubuntu/programming/c/gparted/src/gpartedbin  core --batch --quiet -ex 'info threads' -ex 'thread apply all backtrace' -ex quit > backtrace-all.log
539	/build/buildd/glib2.0-2.40.2/./glib/gslice.c: No such file or directory.
# cat backtrace-all.log
[New LWP 12554]
[New LWP 12598]
[New LWP 27592]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/home/xubuntu/programming/c/gparted/src/gpartedbin'.
Program terminated with signal SIGSEGV, Segmentation fault.

Thread 1 (Thread 0x7f01b0f11a00 (LWP 12554))

  • #0 magazine_chain_pop_head
    at /build/buildd/glib2.0-2.40.2/./glib/gslice.c line 539
  • #1 thread_memory_magazine1_alloc
    at /build/buildd/glib2.0-2.40.2/./glib/gslice.c line 842
  • #2 g_slice_alloc
    at /build/buildd/glib2.0-2.40.2/./glib/gslice.c line 998
  • #3 g_slist_prepend
    at /build/buildd/glib2.0-2.40.2/./glib/gslist.c line 254
  • #4 IA__gdk_window_begin_paint_region
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 3060
  • #5 IA__gtk_main_do_event
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkmain.c line 1623
  • #6 _gdk_window_process_updates_recurse
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 5484
  • #7 _gdk_window_process_updates_recurse
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 5457
  • #8 _gdk_windowing_window_process_updates_recurse
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/x11/gdkwindow-x11.c line 5643
  • #9 gdk_window_process_updates_internal
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 5651
  • #10 IA__gdk_window_process_all_updates
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 5757
  • #11 gdk_window_update_idle
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdkwindow.c line 5377
  • #12 gdk_threads_dispatch
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/gdk.c line 512
  • #13 g_main_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3064
  • #14 g_main_context_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3663
  • #15 g_main_context_iterate
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3734
  • #16 g_main_loop_run
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3928
  • #17 IA__gtk_main
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkmain.c line 1271
  • #18 GParted::GParted_Core::resize_move_filesystem_using_libparted
    at GParted_Core.cc line 2677
  • #19 GParted::GParted_Core::resize_filesystem
    at GParted_Core.cc line 2982
  • #20 GParted::GParted_Core::resize
    at GParted_Core.cc line 2729
  • #21 GParted::GParted_Core::resize_move
    at GParted_Core.cc line 2449
  • #22 GParted::GParted_Core::apply_operation_to_disk
    at GParted_Core.cc line 761
  • #23 emit
    at /usr/include/sigc++-2.0/sigc++/signal.h line 921
  • #24 emit
    at /usr/include/sigc++-2.0/sigc++/signal.h line 2781
  • #25 GParted::Dialog_Progress::on_signal_show
    at Dialog_Progress.cc line 226
  • #26 operator()
    at /usr/include/sigc++-2.0/sigc++/functors/slot.h line 440
  • #27 Glib::SignalProxyNormal::slot0_void_callback
    at signalproxy.cc line 95
  • #28 g_closure_invoke
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 768
  • #29 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3621
  • #30 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3307
  • #31 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #32 IA__gtk_widget_show
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkwidget.c line 3236
  • #33 IA__gtk_dialog_run
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkdialog.c line 1065
  • #34 GParted::Win_GParted::activate_apply
    at Win_GParted.cc line 2884
  • #35 operator()
    at /usr/include/sigc++-2.0/sigc++/functors/slot.h line 440
  • #36 Glib::SignalProxyNormal::slot0_void_callback
    at signalproxy.cc line 95
  • #37 g_closure_invoke
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 768
  • #38 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3621
  • #39 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3307
  • #40 g_signal_emit_by_name
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3403
  • #41 _g_closure_invoke_va
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 831
  • #42 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3215
  • #43 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #44 gtk_real_button_released
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkbutton.c line 1712
  • #45 _g_closure_invoke_va
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 831
  • #46 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3215
  • #47 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #48 gtk_button_button_release
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkbutton.c line 1604
  • #49 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 86
  • #50 g_closure_invoke
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 768
  • #51 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3589
  • #52 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3317
  • #53 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #54 gtk_widget_event_internal
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkwidget.c line 5010
  • #55 IA__gtk_widget_event
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkwidget.c line 4807
  • #56 IA__gtk_propagate_event
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkmain.c line 2509
  • #57 IA__gtk_main_do_event
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkmain.c line 1699
  • #58 gdk_event_dispatch
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gdk/x11/gdkevents-x11.c line 2425
  • #59 g_main_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3064
  • #60 g_main_context_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3663
  • #61 g_main_context_iterate
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3734
  • #62 g_main_loop_run
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3928
  • #63 IA__gtk_main
    at /build/gtk+2.0-KsZSEA/gtk+2.0-2.24.23/gtk/gtkmain.c line 1271
  • #64 Gtk::Main::run
    at main.cc line 484
  • #65 main
    at main.cc line 57

Comment 5 Mike Fleetwood 2016-04-04 17:38:52 UTC
Hi Yan,

I have been reminded that we have seen this bug before.

Bug 735471 - fat32 resize crash - error "corrupted double-linked list"
It causes GParted to crash when resizing fat32 file system on Debian,
Ubuntu 14.04 LTS and now Linux Mint 17.3 with these distro provided
packages:
    Name              Version
    ================= =====================
    libparted0debian1 2.3
    libparted0debian1 2.3-19ubuntu1.14.04.1

You will need to raise a bug with one of the afore mentioned distros to
get this fixed.  Later versions of libparted do not suffer from this.
Also other distros with libparted 2.3 are not affected either.  

Note that libparted 3.2 suffers from this different bug.
Bug 759916 - fat(32) resizing generates boot sector(s) with invalid jump
instruction and pseudo-random boot code

Closing this bug as duplicate.

Thanks,
Mike

*** This bug has been marked as a duplicate of bug 735471 ***
Comment 6 Yan Pashkovsky 2016-04-05 07:42:58 UTC
Thnak you!:) I will report those bugs to ubuntu's bug tracking system