BitcoinQt eating 100% CPU
4 messages, 21 to 23 Feb 2012. Started by Michael Gronager.
Michael Gronager (2), Gavin Andresen, Luke Dashjr
Hi Wladimir / others,
I just downloaded the latest (0.6 rc1) source of bitcoin-qt and built it using qt-creator on MacOSX 10.7.3. Nice and easy experience, even though I had to change BDB version to 5.1 ;)
However, when running it, it is using 100% CPU (after initial block chain download that is...) * All activity in debug.log seems normal (blocks/txes/addresses are processes and accepted etc) so it is not stuck (at least not in the MessageThread) * Sampling the process shows that the majority of time in each thread is used for: ** __semwait_signal ** kevent ** __select ** mach_msg_trap ** boost::date_time::micro_sec_clock
None of this would usually alert me - sleeping and waiting for conditions should not consume CPU, the only issue seems to be the last line which is called from qtipcserver.cpp line 31:
if(mq->timed_receive(&strBuf, sizeof(strBuf), nSize, nPriority, d))
As I see it this should not consume cpu either, but, it is the only thing that seems a bit strange..
Have you seen this before?
/M
A follow up on my mail from the other day (got it send from the wrong email address...)
I now exit the ipc thread at startup by inserting:
void ipcThread(void* parg)
{
ipcShutdown();
return;
Bitcoin-Qt is now running nicely using around 0.9% CPU. So it seems like the culprit was indeed line 31:
if(mq->timed_receive(&strBuf, sizeof(strBuf), nSize, nPriority, d))
Others, who have seen similar issues ?
Cheers,
M
On 21/02/2012, at 21:33, Michael Grønager wrote:
Quoted text (22 lines)
> Hi Wladimir / others, > > I just downloaded the latest (0.6 rc1) source of bitcoin-qt and built it using qt-creator on MacOSX 10.7.3. Nice and easy experience, even though I had to change BDB version to 5.1 ;) > > However, when running it, it is using 100% CPU (after initial block chain download that is...) > * All activity in debug.log seems normal (blocks/txes/addresses are processes and accepted etc) so it is not stuck (at least not in the MessageThread) > * Sampling the process shows that the majority of time in each thread is used for: > ** __semwait_signal > ** kevent > ** __select > ** mach_msg_trap > ** boost::date_time::micro_sec_clock > > None of this would usually alert me - sleeping and waiting for conditions should not consume CPU, the only issue seems to be the last line which is called from qtipcserver.cpp line 31: > > if(mq->timed_receive(&strBuf, sizeof(strBuf), nSize, nPriority, d)) > > As I see it this should not consume cpu either, but, it is the only thing that seems a bit strange.. > > Have you seen this before? > > /M
Bitcoin-Qt is now running nicely using around 0.9% CPU. So it seems like
Quoted text (7 lines)
> the culprit was indeed line 31: > > if(mq->timed_receive(&strBuf, sizeof(strBuf), nSize, nPriority, d)) > > Others, who have seen similar issues ? > >
I can definitely reproduce the issue on my mac.
If I recall correctly, the Mac Bitcoin-Qt does not register itself as a bitcoin: URL handler, so the easiest fix for the 0.6 release would be to just never launch the ipcThread #ifdef Q_WS_MAC
On Thursday, February 23, 2012 3:26:40 PM Gavin Andresen wrote:
Quoted text (3 lines)
> If I recall correctly, the Mac Bitcoin-Qt does not register itself as a > bitcoin: URL handler, so the easiest fix for the 0.6 release would be to > just never launch the ipcThread #ifdef Q_WS_MAC
Wouldn't that prevent the user from registering it?