On Fri, Sep 4, 2009 at 8:32 AM, Yuki KODAMA<endflow....@gmail.com> wrote:
> On Fri, Sep 4, 2009 at 18:28, Adrian Buehlmann<adr...@cadifra.com> wrote:
>> On 04.09.2009 10:45, Yuki KODAMA wrote:
>>> Hi all,
>>>
>>> I got issue that commit & status tool doesn't work at changeset 
>>> <8211c9509752>.
>>> The dialog opened from command line doesn't crash and spawn errors.
>>> It freezes completely and looks like waiting termination of a thread
>>> (CPU usage is not 100%). This issue was occurred from
>>> changeset <2d284f61996f> in my testing.
>>>
>>> Is there someone who got same issue?
>>
>> Yes, same here. I bisected this to
>>
>> changeset:   3828:2d284f61996f
>> user:        Steve Borho <st...@borho.org>
>> date:        Thu Sep 03 09:22:09 2009 -0500
>> summary:     status: move status_wait() into a thread
>>
>> as well.
>>
>> I was just right in the middle of typing an email to the list, when
>> I got your mail.
>>
>> I haven't investigated it any deeper yet. Looks like you are much
>> ahead of me (investigating).
>>
>>> Need to enable MQ extension; If you disable MQ, you won't get this issue.
>>>
>>> In short:
>>> "set_title" function calling at the thread "get_repo_status" in
>>> "reload_status" function
>>> of status.py will make a thread the idle (?) state:
>>>
>>> 610:            if hasattr(repo, 'mq'):
>>> 611:                self.mqmode = repo.mq.applied and repo['.'] == 
>>> repo['qtip']
>>> 612:                self.set_title(self.get_title())
>>>
>>> Details:
>>> I debugged this with PyDev on Eclipse.
>>> I found out the spawned thread becomes idle state (I don't know
>>> whether it's really 'idle state').
>>> The thread is "get_repo_status" nested function in "reload_status" function
>>> in status.py. In the end of "reload_status" function, it launches a thread
>>> "get_repo_status" for getting repo status. And it also set the timer
>>> "status_wait"
>>> to check whether the thread is alive.
>>>
>>> I set an break point to top of "get_repo_status" thread function and
>>> tested step execution.
>>> After executing line #612, "get_repo_status" thread was became idle state.
>>> "self.get_title" function calling is no problem.
>>>
>>> Finally, I comment out line #612 and it works without freeze.
>>>
>>
>
> Hmm... now I'm debugging. It's very weird:
>
> OK: self.set_property('title', self.get_title())
> NG: self.set_title(self.get_title())
>
> why why why...

I've pushed a small workaround.

--
Steve

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to