Bug 617734 - Crash in firefox using PackageKit-browser-plugin
Crash in firefox using PackageKit-browser-plugin
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: PackageKit (Show other bugs)
6.0
All Linux
low Severity medium
: rc
: ---
Assigned To: Richard Hughes
desktop-bugs@redhat.com
: RHELNAK
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-07-23 16:11 EDT by Hugo Melo
Modified: 2015-09-27 22:01 EDT (History)
3 users (show)

See Also:
Fixed In Version: PackageKit-0.5.8-16.el6
Doc Type: Bug Fix
Doc Text:
Both Firefox and packagekit-plugin included different versions of sqlite in their dependencies. This could cause crashes in Firefox when attempting to use the PackageKit web plugin to access application icons, since the plugin attempted to use its version of sqlite to query PkDesktop. This query attempt has been removed, and the web plugin now works as expected, without crashing Firefox.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-05-19 10:01:34 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
A test file for reproducing the bug. (1.51 KB, text/html)
2010-07-23 16:11 EDT, Hugo Melo
no flags Details
Patch to work around the sqlite issue by not querying PkDesktop (1.90 KB, patch)
2010-09-13 10:37 EDT, Richard Hughes
no flags Details | Diff


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2011:0681 normal SHIPPED_LIVE PackageKit bug fix update 2011-05-18 14:10:34 EDT

  None (edit)
Description Hugo Melo 2010-07-23 16:11:14 EDT
Created attachment 434054 [details]
A test file for reproducing  the bug.

Description of problem:
Firefox crashes showing some pages with PK plugin objects.

Version-Release number of selected component (if applicable):
rpm -qa \*PackageKit\* \*xulrunner\* \*firefox\*
firefox-debuginfo-3.6.6-2.el6.x86_64
PackageKit-yum-0.5.8-7.el6.x86_64
xulrunner-1.9.2.6-1.el6.x86_64
PackageKit-browser-plugin-0.5.8-7.el6.x86_64
PackageKit-0.5.8-7.el6.x86_64
firefox-3.6.6-2.el6.x86_64
c4eb-config-firefox-6.00-1.el6.x86_64
PackageKit-device-rebind-0.5.8-7.el6.x86_64
PackageKit-gstreamer-plugin-0.5.8-7.el6.x86_64
PackageKit-gtk-module-0.5.8-7.el6.i686
PackageKit-debuginfo-0.5.8-7.el6.x86_64
PackageKit-gtk-module-0.5.8-7.el6.x86_64
PackageKit-glib-0.5.8-7.el6.x86_64
PackageKit-yum-plugin-0.5.8-7.el6.x86_64
xulrunner-1.9.2.6-1.el6.i686
xulrunner-debuginfo-1.9.2.6-1.el6.x86_64

uname -a
Linux localhost.localdomain 2.6.32-44.1.el6.x86_64 #1 SMP Wed Jul 14 18:51:29 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

How reproducible:
Everytime

Steps to Reproduce:
1. Install PackageKit-browser-plugin
2. Open the attached file or a page with any package which installs a desktop file
3. Click to install the package (if not installed)
  
Actual results:
After it installs the package firefox crashes with the following message:

[Thread 0x7fffcdf6b710 (LWP 5608) exited]

GLib-ERROR **: gmem.c:137: failed to allocate 40 bytes
aborting...

Program received signal SIGABRT, Aborted.
0x00007ffff6ecf9b5 in raise () from /lib64/libc.so.6

If you restart the browser you get the same crash but can see the Run "PACKAGE" message. Sometimes, It lasts some seconds to crash and you are able to run the package without problems by clicking on the Run link. But it always crashes.

Expected results:
It would show a box with Run "PACKAGE"

Additional info:
It seems the problem is really showing packages with a desktop file like cheese and xsane. I tested it using php-pear, lynx and php-ldap which don't install those desktop files so we cannot open that from the plugin and it just shows the message "Installed version". Never happens with these pages.

Bellow is the backtrace from gdb:

Thread 15 (Thread 0x7fffe786e710 (LWP 10869)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x0000003cf2c23cce in PR_WaitCondVar (cvar=0x7fffdabe8200, timeout=4294967295) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:417
#2  0x0000003cf2c23d46 in PR_Wait (mon=0x7fffe5d8df30, timeout=<value optimized out>) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:601
#3  0x0000003ce842a27b in Wait (this=0x7fffdb1e3b30, mayWait=1, result=0x7fffe786ddb0) at ../../dist/include/nsAutoLock.h:340
#4  nsEventQueue::GetEvent (this=0x7fffdb1e3b30, mayWait=1, result=0x7fffe786ddb0) at nsEventQueue.cpp:85
#5  0x0000003ce842aeba in GetEvent (this=0x7fffdb1e3af0, mayWait=1, result=0x7fffe786de1c) at nsThread.h:112
#6  nsThread::ProcessNextEvent (this=0x7fffdb1e3af0, mayWait=1, result=0x7fffe786de1c) at nsThread.cpp:521
#7  0x0000003ce83fc7e1 in NS_ProcessNextEvent_P (thread=<value optimized out>, mayWait=<value optimized out>) at nsThreadUtils.cpp:250
#8  0x0000003ce842b5a1 in nsThread::ThreadFunc (arg=0x7fffdb1e3af0) at nsThread.cpp:254
#9  0x0000003cf2c29843 in _pt_root (arg=0x7fffdab1f790) at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
#10 0x0000003cdfa077e1 in start_thread (arg=0x7fffe786e710) at pthread_create.c:301
#11 0x0000003cdf2e151d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115


Thread 14 (Thread 0x7fffeb5ff710 (LWP 10865)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x0000003cf2c23cce in PR_WaitCondVar (cvar=0x7fffe5d74800, timeout=4294967295) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:417
#2  0x0000003cf2c23d46 in PR_Wait (mon=0x7fffe2a53f30, timeout=<value optimized out>) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:601
#3  0x0000003ce842a27b in Wait (this=0x7fffe2ae7f20, mayWait=1, result=0x7fffeb5fedb0) at ../../dist/include/nsAutoLock.h:340
#4  nsEventQueue::GetEvent (this=0x7fffe2ae7f20, mayWait=1, result=0x7fffeb5fedb0) at nsEventQueue.cpp:85
#5  0x0000003ce842aeba in GetEvent (this=0x7fffe2ae7ee0, mayWait=1, result=0x7fffeb5fee1c) at nsThread.h:112
#6  nsThread::ProcessNextEvent (this=0x7fffe2ae7ee0, mayWait=1, result=0x7fffeb5fee1c) at nsThread.cpp:521
#7  0x0000003ce83fc7e1 in NS_ProcessNextEvent_P (thread=<value optimized out>, mayWait=<value optimized out>) at nsThreadUtils.cpp:250
#8  0x0000003ce842b5a1 in nsThread::ThreadFunc (arg=0x7fffe2ae7ee0) at nsThread.cpp:254
#9  0x0000003cf2c29843 in _pt_root (arg=0x7fffe2a80780) at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
#10 0x0000003cdfa077e1 in start_thread (arg=0x7fffeb5ff710) at pthread_create.c:301
#11 0x0000003cdf2e151d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 13 (Thread 0x7fffe6bff710 (LWP 10864)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
#1  0x0000003cf2c23049 in pt_TimedWait (cv=0x7fffea9a9048, ml=0x7fffea934d58, timeout=<value optimized out>) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:292
#2  0x0000003cf2c23c2c in PR_WaitCondVar (cvar=0x7fffea9a9040, timeout=60000) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:419
#3  0x0000003cf2c23d46 in PR_Wait (mon=0x7fffea934d50, timeout=<value optimized out>) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:601
#4  0x0000003ce842c9ba in Wait (this=0x7fffeb60d340) at ../../dist/include/nsAutoLock.h:340
#5  nsThreadPool::Run (this=0x7fffeb60d340) at nsThreadPool.cpp:210
#6  0x0000003ce842aed7 in nsThread::ProcessNextEvent (this=0x7fffe6dd5e00, mayWait=1, result=0x7fffe6bfee1c) at nsThread.cpp:527
#7  0x0000003ce83fc7e1 in NS_ProcessNextEvent_P (thread=<value optimized out>, mayWait=<value optimized out>) at nsThreadUtils.cpp:250
#8  0x0000003ce842b5a1 in nsThread::ThreadFunc (arg=0x7fffe6dd5e00) at nsThread.cpp:254
#9  0x0000003cf2c29843 in _pt_root (arg=0x7fffe84e2470) at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
#10 0x0000003cdfa077e1 in start_thread (arg=0x7fffe6bff710) at pthread_create.c:301
#11 0x0000003cdf2e151d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 10 (Thread 0x7fffe91b6710 (LWP 10861)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x0000003cf2c23cce in PR_WaitCondVar (cvar=0x7fffec3bcec0, timeout=4294967295) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:417
#2  0x0000003ce81d883a in nsCertVerificationThread::Run (this=0x7fffea922d30) at nsCertVerificationThread.cpp:138
#3  0x0000003cf2c29843 in _pt_root (arg=0x7ffff7d57780) at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
---Type <return> to continue, or q <return> to quit---
#4  0x0000003cdfa077e1 in start_thread (arg=0x7fffe91b6710) at pthread_create.c:301
#5  0x0000003cdf2e151d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 9 (Thread 0x7fffe9bb7710 (LWP 10860)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x0000003cf2c23cce in PR_WaitCondVar (cvar=0x7fffec3bce80, timeout=4294967295) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:417
#2  0x0000003ce81d7a65 in nsSSLThread::Run (this=0x7fffec3bce00) at nsSSLThread.cpp:980
#3  0x0000003cf2c29843 in _pt_root (arg=0x7ffff7d57670) at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
#4  0x0000003cdfa077e1 in start_thread (arg=0x7fffe9bb7710) at pthread_create.c:301
#5  0x0000003cdf2e151d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 6 (Thread 0x7fffec2ff710 (LWP 10857)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
#1  0x0000003cf2c23049 in pt_TimedWait (cv=0x7ffff071d608, ml=0x7ffff070f480, timeout=<value optimized out>) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:292
#2  0x0000003cf2c23c2c in PR_WaitCondVar (cvar=0x7ffff071d600, timeout=14) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:419
#3  0x0000003ce842e2ea in TimerThread::Run (this=0x7ffff7d27980) at TimerThread.cpp:344
#4  0x0000003ce842aed7 in nsThread::ProcessNextEvent (this=0x7fffec450110, mayWait=1, result=0x7fffec2fee1c) at nsThread.cpp:527
#5  0x0000003ce83fc7e1 in NS_ProcessNextEvent_P (thread=<value optimized out>, mayWait=<value optimized out>) at nsThreadUtils.cpp:250
#6  0x0000003ce842b5a1 in nsThread::ThreadFunc (arg=0x7fffec450110) at nsThread.cpp:254
#7  0x0000003cf2c29843 in _pt_root (arg=0x7ffff7d55030) at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
#8  0x0000003cdfa077e1 in start_thread (arg=0x7fffec2ff710) at pthread_create.c:301
#9  0x0000003cdf2e151d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 5 (Thread 0x7fffed1e4710 (LWP 10856)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
#1  0x0000003cf2c23049 in pt_TimedWait (cv=0x7fffeea260c8, ml=0x7ffff07d48a0, timeout=<value optimized out>) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:292
#2  0x0000003cf2c23c2c in PR_WaitCondVar (cvar=0x7fffeea260c0, timeout=1000) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:419
#3  0x0000003ce7aed4d3 in XPCJSRuntime::WatchdogMain (arg=0x7ffff07cc800) at xpcjsruntime.cpp:808
#4  0x0000003cf2c29843 in _pt_root (arg=0x7ffff7d548c0) at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
#5  0x0000003cdfa077e1 in start_thread (arg=0x7fffed1e4710) at pthread_create.c:301
#6  0x0000003cdf2e151d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 4 (Thread 0x7fffedbe5710 (LWP 10855)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x0000003cf2c23cce in PR_WaitCondVar (cvar=0x7fffeea26080, timeout=4294967295) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:417
#2  0x0000003ce72d65dc in JSBackgroundThread::work (this=0x7fffeea27d90) at jstask.cpp:91
#3  0x0000003cf2c29843 in _pt_root (arg=0x7ffff7d546a0) at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
#4  0x0000003cdfa077e1 in start_thread (arg=0x7fffedbe5710) at pthread_create.c:301
#5  0x0000003cdf2e151d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 3 (Thread 0x7fffee7f0710 (LWP 10854)):
#0  0x0000003cdf2d7e13 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x0000003cf2c256ef in _pr_poll_with_poll (pds=0x7ffff07d39c0, npds=1, timeout=4294967295) at ../../../mozilla/nsprpub/pr/src/pthreads/ptio.c:3915
#2  0x0000003ce7b56c05 in nsSocketTransportService::Poll (this=<value optimized out>, wait=<value optimized out>, interval=0x7fffee7efc8c) at nsSocketTransportService2.cpp:355
#3  0x0000003ce7b570c0 in nsSocketTransportService::DoPollIteration (this=0x7ffff07d3000, wait=1) at nsSocketTransportService2.cpp:660
#4  0x0000003ce7b572d2 in nsSocketTransportService::OnProcessNextEvent (this=0x7ffff07d3000, thread=0x7ffff07fec50, mayWait=<value optimized out>, depth=<value optimized out>)
    at nsSocketTransportService2.cpp:539
#5  0x0000003ce842ae84 in nsThread::ProcessNextEvent (this=0x7ffff07fec50, mayWait=1, result=0x7fffee7efd5c) at nsThread.cpp:508
---Type <return> to continue, or q <return> to quit---
#6  0x0000003ce83fc7e1 in NS_ProcessNextEvent_P (thread=<value optimized out>, mayWait=<value optimized out>) at nsThreadUtils.cpp:250
#7  0x0000003ce7b56e16 in nsSocketTransportService::Run (this=0x7ffff07d3000) at nsSocketTransportService2.cpp:581
#8  0x0000003ce842aed7 in nsThread::ProcessNextEvent (this=0x7ffff07fec50, mayWait=1, result=0x7fffee7efe1c) at nsThread.cpp:527
#9  0x0000003ce83fc7e1 in NS_ProcessNextEvent_P (thread=<value optimized out>, mayWait=<value optimized out>) at nsThreadUtils.cpp:250
#10 0x0000003ce842b5a1 in nsThread::ThreadFunc (arg=0x7ffff07fec50) at nsThread.cpp:254
#11 0x0000003cf2c29843 in _pt_root (arg=0x7ffff7d54590) at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
#12 0x0000003cdfa077e1 in start_thread (arg=0x7fffee7f0710) at pthread_create.c:301
#13 0x0000003cdf2e151d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7fffef5c1710 (LWP 10853)):
#0  0x0000003cdf2e1b13 in epoll_wait () at ../sysdeps/unix/syscall-template.S:82
#1  0x0000003ce83c3e11 in epoll_dispatch (base=0x7ffff070b800, arg=<value optimized out>, tv=<value optimized out>) at src/third_party/libevent/epoll.c:208
#2  0x0000003ce83be517 in event_base_loop (base=0x7ffff070b800, flags=<value optimized out>) at src/third_party/libevent/event.c:513
#3  0x0000003ce83ec0a4 in base::MessagePumpLibevent::Run (this=0x7ffff07206a0, delegate=0x7fffef5c0cd0) at src/base/message_pump_libevent.cc:338
#4  0x0000003ce83cf3dc in MessageLoop::Run (this=0x7fffef5c0cd0) at src/base/message_loop.cc:173
#5  0x0000003ce83db48e in base::Thread::ThreadMain (this=0x7ffff071d4c0) at src/base/thread.cc:165
#6  0x0000003ce83ec6a2 in ThreadFunc (closure=<value optimized out>) at src/base/platform_thread_posix.cc:26
#7  0x0000003cdfa077e1 in start_thread (arg=0x7fffef5c1710) at pthread_create.c:301
#8  0x0000003cdf2e151d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7ffff7fda720 (LWP 10850)):
#0  0x0000003cdf2329b5 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x0000003cdf234195 in abort () at abort.c:92
#2  0x0000003ce0e4335a in IA__g_logv (log_domain=0x3ce0e8a066 "GLib", log_level=<value optimized out>, format=0x3ce0e920f0 "%s: failed to allocate %lu bytes",
    args1=0x7fffffff7fd0) at gmessages.c:549
#3  0x0000003ce0e433f3 in IA__g_log (log_domain=<value optimized out>, log_level=<value optimized out>, format=<value optimized out>) at gmessages.c:569
#4  0x0000003ce0e417dc in IA__g_malloc (n_bytes=48) at gmem.c:136
#5  0x0000003ce0e565ea in IA__g_slice_alloc (mem_size=48) at gslice.c:824
#6  0x0000003ce1a1ee55 in handler_new (instance=0x7fffd991d500, detailed_signal=0x3ce85db9a6 "motion_notify_event",
    c_handler=0x3ce82dc43f <motion_notify_event_cb(GtkWidget*, GdkEventMotion*)>, data=0x0, destroy_data=0, connect_flags=0) at gsignal.c:558
#7  IA__g_signal_connect_data (instance=0x7fffd991d500, detailed_signal=0x3ce85db9a6 "motion_notify_event",
    c_handler=0x3ce82dc43f <motion_notify_event_cb(GtkWidget*, GdkEventMotion*)>, data=0x0, destroy_data=0, connect_flags=0) at gsignal.c:2258
#8  0x0000003ce82de69d in nsWindow::Create (this=0x7fffdb1211f0, aParent=<value optimized out>, aNativeParent=<value optimized out>, aRect=<value optimized out>,
    aHandleEventFunction=<value optimized out>, aContext=<value optimized out>, aAppShell=0x0, aToolkit=0x0, aInitData=0x7fffffff83e0) at nsWindow.cpp:4421
#9  0x0000003ce7ee5383 in nsIView::CreateWidget (this=0x7fffe54a0780, aWindowIID=<value optimized out>, aWidgetInitData=0x7fffffff83e0, aNative=<value optimized out>,
    aEnableDragDrop=1, aResetVisibility=1, aContentType=eContentTypeInherit, aParentWidget=0x0) at nsView.cpp:683
#10 0x0000003ce7d75903 in nsMenuPopupFrame::CreateWidgetForView (this=0x7fffe5499388, aView=0x7fffe54a0780) at nsMenuPopupFrame.cpp:292
#11 0x0000003ce7d75af8 in nsMenuPopupFrame::InitializePopupAtScreen (this=0x7fffe5499388, aXPos=714, aYPos=325, aIsContextMenu=0) at nsMenuPopupFrame.cpp:531
#12 0x0000003ce7d818a7 in nsXULPopupManager::ShowPopupAtScreen (this=0x7fffeaadff00, aPopup=0x7fffe6d39a10, aXPos=714, aYPos=325, aIsContextMenu=0, aTriggerEvent=
    0x7fffd9aab8c8) at nsXULPopupManager.cpp:504
#13 0x0000003ce7d69222 in nsXULTooltipListener::LaunchTooltip (this=0x7fffe531ba90) at nsXULTooltipListener.cpp:558
#14 0x0000003ce7d69405 in nsXULTooltipListener::ShowTooltip (this=0x7fffe531ba90) at nsXULTooltipListener.cpp:457
#15 0x0000003ce7d69747 in nsXULTooltipListener::sTooltipCallback (aTimer=<value optimized out>, aListener=<value optimized out>) at nsXULTooltipListener.cpp:768
#16 0x0000003ce842d89b in nsTimerImpl::Fire (this=0x7fffd9950380) at nsTimerImpl.cpp:427
#17 0x0000003ce842d970 in nsTimerEvent::Run (this=<value optimized out>) at nsTimerImpl.cpp:519
#18 0x0000003ce842aed7 in nsThread::ProcessNextEvent (this=0x7ffff7d1b790, mayWait=1, result=0x7fffffff88ac) at nsThread.cpp:527
#19 0x0000003ce83fc7e1 in NS_ProcessNextEvent_P (thread=<value optimized out>, mayWait=<value optimized out>) at nsThreadUtils.cpp:250
#20 0x0000003ce837dd0e in mozilla::ipc::MessagePump::Run (this=0x7ffff071d280, aDelegate=0x7ffff0732020) at MessagePump.cpp:142
---Type <return> to continue, or q <return> to quit---
#21 0x0000003ce83cf3dc in MessageLoop::Run (this=0x7ffff0732020) at src/base/message_loop.cc:173
#22 0x0000003ce82f416d in nsBaseAppShell::Run (this=0x7fffeea78c40) at nsBaseAppShell.cpp:174
#23 0x0000003ce81b3688 in nsAppStartup::Run (this=0x7fffeeabd240) at nsAppStartup.cpp:183
#24 0x0000003ce7accf59 in XRE_main (argc=<value optimized out>, argv=<value optimized out>, aAppData=<value optimized out>) at nsAppRunner.cpp:3483
#25 0x00000000004026e8 in main (argc=1, argv=0x7fffffffe378) at nsXULStub.cpp:583
Comment 2 RHEL Product and Program Management 2010-07-23 16:37:38 EDT
This issue has been proposed when we are only considering blocker
issues in the current Red Hat Enterprise Linux release.

** If you would still like this issue considered for the current
release, ask your support representative to file as a blocker on
your behalf. Otherwise ask that it be considered for the next
Red Hat Enterprise Linux release. **
Comment 4 Richard Hughes 2010-09-13 06:22:07 EDT
I'm looking at this now.
Comment 5 Richard Hughes 2010-09-13 07:30:17 EDT
Okay, after some initial debugging, the failures always come down to failing to allocate memory, usually deep in GTK, pango or the plugin itself and not always the same on each run. I'll speculate and say I think each plugin must be restricted to a certain amount of memory and then subsequent requests fail. Given that firefox doesn't explode with a huge RSS count, I think it must be firefox somehow controlling the plugin and enforcing the memory used, rather than just running out of RAM (which also seems unlikely).

By commenting out the call to pk_desktop_get_files_for_package() in pk-plugin-install.c you can stop the crash from happening. An alternate way to do this is to delete the /var/lib/PackageKit/desktop.db database, although of course it will be re-created whenever the next RefreshCache is scheduled.

The whole point of getting the results from pk_desktop_get_files_for_package() is to get the desktop file for the package name, which allows us to show the icon and translated title and summary for installed packages.

Quite why a call into sqlite would cause memory failures in GLib is beyond me, but I'm continuing debugging now.
Comment 6 Richard Hughes 2010-09-13 10:19:08 EDT
(In reply to comment #5)
> Quite why a call into sqlite would cause memory failures in GLib is beyond me,
> but I'm continuing debugging now.

Firefox in RHEL6 seems to ship a bundled copy of sqlite. This causes problems as the packagekit-plugin also pulls in packagekit-glib, which pulls in the system sqlite. Trying to use two different sqlite's in one process is obviously a recipe for disaster.
Comment 7 Richard Hughes 2010-09-13 10:37:00 EDT
Created attachment 446949 [details]
Patch to work around the sqlite issue by not querying PkDesktop

This patch works around the issue, and allows the test html page to be viewed successfully. The only loss in functionality is the lack of installed application icon and translated text.

After talking to the firefox guys, they seem to think that re-enabling firefox in nspluginwrapper (removing "packagekit*:" from /etc/sysconfig/nspluginwrapper) would also work around this bug, as the plugin would be run in a different process to the browser itself. I couldn't get this to work, however.
Comment 8 Hugo Melo 2010-10-29 10:54:13 EDT
Richard,
I can confirm your patch removes the crashes on firefox. I am now able to install a package and see its status (installed, not installed) in my system.
Additionally, I would like to see this patch applied to the newest packages. Do you plan to do this? Have a schedule for that?
Thank you!
Comment 9 Richard Hughes 2010-11-30 14:15:41 EST
devel_ack'd.(In reply to comment #8)

> Additionally, I would like to see this patch applied to the newest packages. Do
> you plan to do this? Have a schedule for that?

Hopefully 6.1, whenever that will be.
Comment 11 John Walicki 2010-12-01 12:05:11 EST
@Richard - I think you meant PackageKit 0.6.7 ?

Longer term, we're eager to get the newer PackageKit 0.6.x and these fixes into RHEL6 (which currently provides PackageKit 0.5.8).  If the jump to PackageKit 0.6.x is too steep for RHEL6, we should consider requesting that this patch be backported to 0.5.8.
Comment 13 Richard Hughes 2011-01-25 07:24:41 EST
John, Hugo: I've built PK with this patch for RHEL 6.1, and will prepare the errata soon. Sorry for the delay. Hopefully I'll be able to rebase PK to something newer in 6.2.
Comment 15 John Walicki 2011-01-25 09:45:24 EST
Richard - Thanks!  The IBM team will check if we can pull this in from a RHEL 6.1 beta repo and start to test.  We already have a few thousand RHEL 6 users.
Comment 17 Laura Bailey 2011-05-04 22:10:07 EDT
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Both Firefox and packagekit-plugin included different versions of sqlite in their dependencies. This could cause crashes in Firefox when attempting to use the PackageKit web plugin to access application icons, since the plugin attempted to use its version of sqlite to query PkDesktop. This query attempt has been removed, and the web plugin now works as expected, without crashing Firefox.
Comment 18 John Walicki 2011-05-04 22:33:46 EDT
Excellent news.  so I assume this will be included in RHEL 6.1  Thanks!
Comment 19 errata-xmlrpc 2011-05-19 10:01:34 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2011-0681.html

Note You need to log in before you can comment on or make changes to this bug.