[pkg-discuss] Code Review for 11034 Packagemanager hangs if quit during catalog refresh

Padraig O'Briain Padraig.Obriain at Sun.COM
Tue Sep 1 07:08:49 PDT 2009


I have just upgraded to OpenSolaris build 121 and I may now be seeing 
what you are seeing.

Can you send me the pstack of the packagemanager process?

Padraig

On 09/01/09 10:36, Joanmarie Diggs wrote:
> On Tue, 2009-09-01 at 09:00 +0100, Padraig O'Briain wrote:
>   
>> Joanie,
>>
>> I am not able to reproduce what I think you are reporting here.
>>     
>
> <frowns>
>
>   
>> I am running OpenSolaris in a Virtual Box on a MAC. I have switched
>> off the MAC's AirPort connection.
>>     
>
> That should be sufficient, I'd think. What I was getting at is based on
> a potentially faulty recollection, namely I could've sworn that PM used
> to behave differently if the LAN was up but the WAN down than if there
> were no LAN connection. If that had ever been the case, it no longer is.
>
> On a different box, I just switched from my wireless to my wired adapter
> (there's no wired connection on this box). Not only can I reproduce the
> problem as described (latest gate + your patch), I get a traceback when
> I succeed in finally interrupting the process:
>
> $ pfexec packagemanager
>
> <File->Reload, close window, wander off to kitchen for coffee, return>
>
> ^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^CError in atexit._run_exitfuncs:
> Traceback (most recent call last):
>   File "/usr/lib/python2.4/atexit.py", line 24, in _run_exitfuncs
>     func(*targs, **kargs)
>   File "/usr/lib/python2.4/threading.py", line 634, in __exitfunc
>     t.join()
>   File "/usr/lib/python2.4/threading.py", line 540, in join
>     self.__block.wait()
>   File "/usr/lib/python2.4/threading.py", line 203, in wait
>     waiter.acquire()
> TypeError: __main_application_quit() takes at most 2 arguments (3 given)
> Error in sys.exitfunc:
> Traceback (most recent call last):
>   File "/usr/lib/python2.4/atexit.py", line 24, in _run_exitfuncs
>     func(*targs, **kargs)
>   File "/usr/lib/python2.4/threading.py", line 634, in __exitfunc
>     t.join()
>   File "/usr/lib/python2.4/threading.py", line 540, in join
>     self.__block.wait()
>   File "/usr/lib/python2.4/threading.py", line 203, in wait
>     waiter.acquire()
> TypeError: __main_application_quit() takes at most 2 arguments (3 given)
>
>   
>> When I start PackageManager with my patch it terminates cleanly when I
>> close the window even when I invoke the Reload menu item.
>>     
>
> Hmmmm.... I'm afraid all of my OpenSolaris installs are on bare metal,
> so I can't try to reproduce the environment you describe. :-(
>
> Any chance you're using additional patches? I recall seeing a couple of
> your other fixes go by for code review, but I don't recall seeing them
> reviewed or an announcement of being committed. Failing that, I'm not
> sure what to tell you.
>
> $ uname -a
> SunOS pokey 5.11 snv_121 i86pc i386 i86pc
>
> $ pkg authority -a
> PUBLISHER                             TYPE     STATUS   URI
> opensolaris.org          (preferred)  origin   online   http://pkg.opensolaris.org/dev/
> Extra                    (disabled)   origin   online   https://pkg.sun.com/opensolaris/extra/
> contrib                               origin   online   http://pkg.opensolaris.org/contrib/
> multimedia                            origin   online   http://ips.homeunix.com:10906/
> pending                               origin   online   http://jucr.opensolaris.org/pending/
>
> Lemme know what else I can do/provide to help you get to the bottom of
> this.
>
> Thanks!
> --joanie
>
>   
>> Padraig 
>>
>> On 08/31/09 18:53, Joanmarie Diggs wrote: 
>>     
>>> Hey Padraig.
>>>
>>> This definitely helps things, but there seems to be a process lingering.
>>> To best appreciate it, keep your local network connection, but sever
>>> ties to the outside world. Compare:
>>>
>>> ~~~~~~~~~~~~~
>>> Before patch:
>>> ~~~~~~~~~~~~~
>>> $ pfexec ptime packagemanager
>>> /usr/bin/packagemanager:3248: GtkWarning: file gtktreeselection.c: line
>>> 354: assertion `selection->tree_view != NULL' failed
>>>   model, itr = self.package_selection.get_selected()
>>>
>>> real       59.269348446
>>> user       25.108675577
>>> sys         1.776196814
>>> ptime: command terminated abnormally by SIGSEGV
>>>
>>> ~~~~~~~~~~~~~
>>> After patch:
>>> ~~~~~~~~~~~~~
>>> $ pfexec ptime packagemanager
>>> real       19.984064393
>>> user       19.432046979
>>> sys         1.182571846
>>>
>>> BUT having severed my outside connection (waiting a long time for the
>>> process to terminate on its own, and finally re-establishing my
>>> connection):
>>>
>>> $ pfexec ptime packagemanager
>>> real    21:29.597118893
>>> user        7.053811630
>>> sys         0.897445571
>>>
>>> (Note that I see the same behavior with the severed connection without
>>> your patch.)
>>>
>>> HTH. Take care.
>>> --joanie
>>>
>>> On Mon, 2009-08-31 at 11:26 +0100, Padraig O'Briain wrote:
>>>   
>>>       
>>>> The webrev, http://cr.opensolaris.org/~padraig/ips-11034-v1/, fixes
>>>> 11034 Packagemanager hangs if quit during catalog refresh
>>>>
>>>> The change ensures that PackageManager closes down tidily if the 
>>>> application window is closed while catalogs are being refreshed.
>>>>
>>>> Padraig
>>>> _______________________________________________
>>>> pkg-discuss mailing list
>>>> pkg-discuss at opensolaris.org
>>>> http://mail.opensolaris.org/mailman/listinfo/pkg-discuss
>>>>     
>>>>         
>>>   
>>>       
>
>   



More information about the pkg-discuss mailing list