Description of problem: puplet segfaults Version-Release number of selected component (if applicable): pirut-1.2.8-1.fc6 How reproducible: always Steps to Reproduce: 1. puplet shows updates and I click view updates 2. root password requested 3. nothing happens Actual results: in dmesg I find: pup[3875]: segfault at 00000034a98d87e2 rip 00000034cb043fbb rsp 00007fffaebe8400 error 4 Expected results: windows with packages that need update Additional info: The system is fc6 updated based on quad core model name : Intel(R) Core(TM)2 Quad CPU @ 2.66GHz on the same system there is fc6 x86 that doesn't show the problem. On both environments livna repository is enabled. On x86_64 I made many updates an started to have problems with puplet on the command "yum update" works in x86_64. Searching through logs it seems that the problem probably arised on 15th of February after massive update done on 14th of February. Not sure as the logs are truncated at that point.
Can you run pup under gdb and see if you can reproduce it and get a backtrace?
[gcecchi@localhost ~]$ gdb pup GNU gdb Red Hat Linux (6.5-15.fc6rh) Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu"... (no debugging symbols found) Using host libthread_db library "/lib64/libthread_db.so.1". (gdb) run Starting program: /usr/bin/pup (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) Program exited normally. (gdb) quit when I type the run command I get the password prompt window and as soon as I type enter after the password string, in /var/log/messages I get: Mar 20 07:39:16 localhost kernel: pup[4282]: segfault at 00000034a98d87e2 rip 00000034cb043fbb rsp 00007fffb43e6c00 error 4 The only non-standard thing is that on the system I have seamonkey-1.0.7-0.6.1.fc6.i386 installed from x86 fc6, so to be able to run flash pages... and livna repository with nvidia kernel module.
Please start pup, and when the password prompt is displayed, switch to a virtual terminal. Attach gdb to the running "userhelper" process, and let it continue. Then switch back to X and enter the root password. Does that show a backtrace in gdb?
I don't know if I have understood what you mean with "let it continue"... sorry. I did as you told (pid of userhelper was 3913) and I ran gdb /usr/sbin/userhelper 3913 in a vt console session This GDB was configured as "x86_64-redhat-linux-gnu"... (no debugging symbols found) Using host libthread_db library "/lib64/libthread_db.so.1". Attaching to program: /usr/sbin/userhelper, process 3913 Reading symbols from /usr/lib64/libuser.so.1...(no debugging symbols found)...do ne. Loaded symbols for /usr/lib64/libuser.so.1 Reading symbols from /lib64/libcrypt.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libcrypt.so.1 Reading symbols from /lib64/libgobject-2.0.so.0... (no debugging symbols found)...done. Loaded symbols for /lib64/libgobject-2.0.so.0 Reading symbols from /lib64/libgmodule-2.0.so.0...(no debugging symbols found).. .done. Loaded symbols for /lib64/libgmodule-2.0.so.0 Reading symbols from /lib64/libdl.so.2... (no debugging symbols found)...done. Loaded symbols for /lib64/libdl.so.2 Reading symbols from /lib64/libglib-2.0.so.0...(no debugging symbols found)...do ne. Loaded symbols for /lib64/libglib-2.0.so.0 Reading symbols from /lib64/libpam_misc.so.0... (no debugging symbols found)...done. Loaded symbols for /lib64/libpam_misc.so.0 Reading symbols from /lib64/libpam.so.0...(no debugging symbols found)...done. Loaded symbols for /lib64/libpam.so.0 Reading symbols from /lib64/libselinux.so.1... (no debugging symbols found)...done. Loaded symbols for /lib64/libselinux.so.1 Reading symbols from /lib64/libattr.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libattr.so.1 Reading symbols from /lib64/libc.so.6... (no debugging symbols found)...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found). ..done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /lib64/libaudit.so.0... (no debugging symbols found)...done. Loaded symbols for /lib64/libaudit.so.0 Reading symbols from /lib64/libsepol.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libsepol.so.1 Reading symbols from /lib64/libnss_files.so.2... (no debugging symbols found)...done. Loaded symbols for /lib64/libnss_files.so.2 Reading symbols from /lib64/security/pam_rootok.so...(no debugging symbols found )...done. Loaded symbols for /lib64/security/pam_rootok.so Reading symbols from /lib64/security/pam_timestamp.so... (no debugging symbols found)...done. Loaded symbols for /lib64/security/pam_timestamp.so Reading symbols from /lib64/security/pam_env.so...(no debugging symbols found).. .done. Loaded symbols for /lib64/security/pam_env.so Reading symbols from /lib64/security/pam_unix.so... (no debugging symbols found)...done. Loaded symbols for /lib64/security/pam_unix.so Reading symbols from /usr/lib64/libcrack.so.2...(no debugging symbols found)...d one. Loaded symbols for /usr/lib64/libcrack.so.2 Reading symbols from /lib64/libnsl.so.1... (no debugging symbols found)...done. Loaded symbols for /lib64/libnsl.so.1 Reading symbols from /lib64/security/pam_succeed_if.so...(no debugging symbols f ound)...done. Loaded symbols for /lib64/security/pam_succeed_if.so Reading symbols from /lib64/security/pam_deny.so... (no debugging symbols found)...done. Loaded symbols for /lib64/security/pam_deny.so Reading symbols from /lib64/security/pam_permit.so...(no debugging symbols found )...done. Loaded symbols for /lib64/security/pam_permit.so Reading symbols from /lib64/security/pam_xauth.so... (no debugging symbols found)...done. Loaded symbols for /lib64/security/pam_xauth.so 0x00000034b7ebfb80 in __read_nocancel () from /lib64/libc.so.6 then gdb stopped at its prompt (gdb) I came back to the gui and typed the password: nothing in gdb console, no window about pup coming up... In gdb I typed bt and I got: (gdb) bt #0 0x00000034b7ebfb80 in __read_nocancel () from /lib64/libc.so.6 #1 0x00000034b7e699b7 in _IO_new_file_underflow () from /lib64/libc.so.6 #2 0x00000034b7e6a37e in _IO_default_uflow_internal () from /lib64/libc.so.6 #3 0x00000034b7e5fbd4 in _IO_getline_info_internal () from /lib64/libc.so.6 #4 0x00000034b7e5eb29 in fgets () from /lib64/libc.so.6 #5 0x00000000004031f6 in lu_prompt_console () #6 0x00000000004036eb in lu_prompt_console () #7 0x0000003c1ba06607 in pam_vprompt () from /lib64/libpam.so.0 #8 0x0000003c1ba06770 in pam_prompt () from /lib64/libpam.so.0 #9 0x00002aaaae7fe830 in pam_sm_open_session () from /lib64/security/pam_unix.so #10 0x00002aaaae7fc029 in pam_sm_authenticate () from /lib64/security/pam_unix.so #11 0x0000003c1ba02d57 in _pam_dispatch () from /lib64/libpam.so.0 #12 0x0000003c1ba02662 in pam_authenticate () from /lib64/libpam.so.0 #13 0x00000000004040e6 in lu_prompt_console () #14 0x00000000004053ac in lu_prompt_console () #15 0x00000034b7e1da44 in __libc_start_main () from /lib64/libc.so.6 #16 0x0000000000402ab9 in lu_prompt_console () #17 0x00007fff2a386c48 in ?? () #18 0x0000000000000000 in ?? () (gdb) quit The program is running. Quit anyway (and detach it)? (y or n) y Detaching from program: /usr/sbin/userhelper, process 3913 Soon after a ps command showed that the pid actually was not active.... and in /var/log/messages: Mar 27 00:33:33 localhost kernel: pup[4032]: segfault at 00000034a98d87e2 rip 00 000034cb043fbb rsp 00007fff20401030 error 4 I also tried using nv video driver instead of nvidia one, but the problem is the same. Under another machine with similar fc6 x86_64 (a dell SX280 with i810 video driver) I have not these kind of problems... pup works normally. In attach I send a diff file about the packages, if it can help in some way.
Created attachment 150976 [details] diff between all rpm installed working and not working fc6 x86_64 systems
I'm sorry about that, I'll try to be more precise. * start pup * when the password prompt is displayed, switch to a virtual terminal. * find out the PID of a running "userhelper process" * run (gdb /usr/sbin/userhelper the_pid_found_above) * Enter a "continue" command. Leave gdb running. * Then switch back to X and enter the root password. * Switch back to the terminal where gdb is running * If gdb reports "Program recieved signal ..." or something similar, enter a "bt" command to get a backtrace.
ok, done. this is the output of gdb. It seems no backtrace but exit with code 0377 ... Loaded symbols for /lib64/security/pam_permit.so Reading symbols from /lib64/security/pam_xauth.so... (no debugging symbols found)...done. Loaded symbols for /lib64/security/pam_xauth.so 0x00000034b7ebfb80 in __read_nocancel () from /lib64/libc.so.6 (gdb) continue Continuing. Program exited with code 0377. (gdb) bt No stack. (gdb) quit and in dmesg I have the entry: pup[6539]: segfault at 00000034a98d87e2 rip 00000034cb043fbb rsp 00007fff92aca2e 0 error 4
Thanks. Let's try one more gdb session: * start pup * when the password prompt is displayed, switch to a virtual terminal. * find out the PID of a running "userhelper" process * run (gdb /usr/sbin/userhelper the_pid_found_above) * Enter a "set follow-fork-mode child" command. * Enter a "continue" command. Leave gdb running. * Then switch back to X and enter the root password. * Switch back to the terminal where gdb is running * If gdb reports "Program recieved signal ..." or something similar, enter a "bt" command to get a backtrace. If this doesn't produce anything either, please: * start pup * when the password prompt is displayed, switch to a virtual terminal. * find out the PID of a running "userhelper" process * run (strace -ff -o log -p the_pid_found_above) * Then switch back to X and enter the root password. * Switch back to the terminal * if strace is still running, terminate it * search the generated log* files for your root password; if you find it, make sure to replace it by some other string * attach all the generated log* files.
Created attachment 151348 [details] userhelper gdb session log
Created attachment 151373 [details] log of process found in previous pup.log session
Created attachment 151374 [details] log for pid 4366 see previous pup.log attach
Created attachment 151375 [details] log for pid 4367 see previous pup.log attach
Created attachment 151376 [details] log for pid 4368 see previous pup.log attach
ok. Attached gdb session. the set follow-fork-mode child produced nothing usefuls, so I went with the second option. I attached alla the log files produced, as you asked. HIH understand better. Gianluca
Thanks. Attachment 151376 [details] demonstrates that the crash is in pup; the gdb session in comment 2 was probably debugging consolehelper.
What's the output of 'rpm -V pirut'?
[gcecchi@localhost Temp]$ rpm -V pirut [gcecchi@localhost Temp]$ echo $? 0 [gcecchi@localhost Temp]$ rpm -q pirut pirut-1.2.8-1.fc6.noarch [gcecchi@localhost Temp]$ rpm -V usermode S.?..... /usr/sbin/userhelper [gcecchi@localhost Temp]$ ll /usr/sbin/userhelper -rws--x--x 1 root root 38560 Oct 3 11:08 /usr/sbin/userhelper downloaded the two rpms [root@localhost ~]# rpm -Uvh --force usermode-1.87-3.x86_64.rpm /home/gcecchi/pirut-1.2.8-1.fc6.noarch.rpm Preparing... ########################################### [100%] 1:pirut ########################################### [ 50%] 2:usermode ########################################### [100%] [root@localhost ~]# Now [gcecchi@localhost Temp]$ ll /usr/sbin/userhelper -rws--x--x 1 root root 34336 Oct 3 11:08 /usr/sbin/userhelper [gcecchi@localhost Temp]$ rpm -V usermode ..?..... /usr/sbin/userhelper I don't understand the ? for the md5sum field.... It seems that the segfault stiil remains.. In dmesg I get pup[16231]: segfault at 00000034a98d87e2 rip 00000034cb043fbb rsp 00007fff79d8a5a0 error 4 I'm going to further check all rpms on the system and retry debug.
I forced fsck with a touch of /forcefsck and rebooted. No errors showed. Now rpm -V of pirut and userhelper give no error (run as root; I didn't know the difference of third field when run by a non root user...) [valeria@localhost ~]$ rpm -V usermode pirut ..?..... /usr/sbin/userhelper [valeria@localhost ~]$ su - Password: [root@localhost ~]# rpm -V usermode pirut [root@localhost ~]# I have the same error and I tried to gdb both pup and userhelper I'm going to attach them as pup.log and userhelper.log.
Created attachment 151483 [details] gdb session of pup process
Created attachment 151485 [details] gdb session for userhelper process
the output for dmesg and in /var/log/messages is always: Apr 2 23:43:04 localhost kernel: pup[5983]: segfault at 00000034a98d87e2 rip 00000034cb043fbb rsp 00007fff8ffe6800 error 4 I don't know if 5983 stands for a process... The pup I debugged had pid 5917 and userhelper.log 5918
I close the bug, because updating the machine to f7 test4 caused the problem to go away.