FS#28195 - Pacman Seg Faults when uninstalling kde-meta

Attached to Project: Pacman
Opened by mewt (mewt) - Tuesday, 31 January 2012, 11:52 GMT
Last edited by Dan McGee (toofishes) - Tuesday, 31 January 2012, 19:49 GMT
Task Type Bug Report
Category General
Status Closed
Assigned To Dan McGee (toofishes)
Allan McRae (Allan)
Architecture All
Severity Medium
Priority Normal
Reported Version 4.0.1
Due in Version 4.0.2
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Summary and Info:

I installed kde to try it out but found that it doesn't play very well with ossv4. Trying to remove it from my openbox session via pacman -Rnsc starts uninstalling it and then crashes with

error: segmentation fault
Please submit a full bug report with --debug if appropriate.

I am unable to restart the uninstallation since the meta package appears to be removed.

Steps to Reproduce:

Install kde with pacman -S kde-meta
Uninstall kde with pacman -Rnsc kde-meta

Attached:

pacman.out - command out with --debug option
pacmanlocaldb.tgz - local pacman database as instructed on #archlinux
This task depends upon

Closed by  Dan McGee (toofishes)
Tuesday, 31 January 2012, 19:49 GMT
Reason for closing:  Fixed
Additional comments about closing:  Commit fcbae69fe81 on maint, for 4.0.2. Thanks for your extensive help debugging!
Comment by mewt (mewt) - Tuesday, 31 January 2012, 12:08 GMT
Attaching GDB output as instructed on IRC channel
Comment by mewt (mewt) - Tuesday, 31 January 2012, 12:23 GMT
Attaching GDB output w/ pacman with debug symbols installed, as instructed on IRC channel
Comment by mewt (mewt) - Tuesday, 31 January 2012, 12:35 GMT
O2 build with debug symbols
Comment by mewt (mewt) - Tuesday, 31 January 2012, 12:39 GMT
O0 build with debug symbols
Comment by mewt (mewt) - Tuesday, 31 January 2012, 12:50 GMT Comment by John (graysky) - Tuesday, 31 January 2012, 19:57 GMT
Thanks for all the hard word, devs! Glad that my task was not my fault :)

https://bugs.archlinux.org/task/27805
Comment by Dan McGee (toofishes) - Tuesday, 31 January 2012, 20:01 GMT
Allan's patch: http://projects.archlinux.org/pacman.git/commit/?h=maint&id=fcbae69fe81d080478bbd9809af5696bbbfe9d95

The reason this was impossible for us to reproduce was it totally depends on the order the directory entries are returned from disk; certain removal operations will cause a segfault based on the layout of the entries returned by readdir() in be_local.c. The sorting of the entires wasn't done quite correctly, leading to a few bogus pointers.

Loading...