It happens during the wallet synchronisation. On my debian linux 6.0.7 amd64 $ 64/bitcoin-qt QMetaMethod::invoke: Unable to handle unregistered datatype 'bool*'
I executed the precompiled binary from bitcoin-0.8.1-linux.tar.gz
It happens during the wallet synchronisation. On my debian linux 6.0.7 amd64 $ 64/bitcoin-qt QMetaMethod::invoke: Unable to handle unregistered datatype 'bool*'
I executed the precompiled binary from bitcoin-0.8.1-linux.tar.gz
I have exactly the same problem with the program freshly compiled from the gihub sources :
$ bitcoin-qt QMetaMethod::invoke: Unable to handle unregistered datatype 'bool*'
v0.8.0-57-gdfd71bb-beta
it looks like it happens when the free space on disk is getting low...
So is this the case? Can you try it with more free space available please.
the synchronisation is working well if there is plenty of free space. When there is only around 50 or 60MB free left, it crashes with the Unable to handle unregistered datatype 'bool*' and that's all. Difficult to understand what is the cause of the problem...
I have some feeling, that perhaps there could be a problem with the signal-handlers from core to GUI, when the disk-space check fails.
@laanwj Can you take a look if this could be related to ThreadSafeMessageBox? I know @sipa added a bool, which we use to handle dialog-boxes. Perhaps there is something wrong with it?
I'll take a look
Is there another disk space check apart from CheckDiskSpace? I rigged that function to always call AbortNode, but that works fine. I get the error in a popup box and the client exits. As expected.
I suppose it could be a Qt version issue? What version (About Qt) are you using? Mine is 4.8.2.
In terms of diskspace, how much is "low"? I'm having these crashes when ~5G are still free. I will try with 10G now.
Tried with ~10G free space, but sadly it didn't make a difference, it still crashes with the same error message. However, I've got something interesting in my debug.log:
received block 000000000000012eaf65592dadb1ffa27f72f1e65f74d588ebced08e7d19fb3d
LevelDB read failure: Corruption: block checksum mismatch
*** System error: Database corrupted
Flush(false)
DBFlush(false) ended 1ms
ThreadSocketHandler exited
ERROR: AcceptBlock() : AddToBlockIndex failed
ERROR: ProcessBlock() : AcceptBlock FAILED
StopNode()
ThreadOpenConnections exited
ThreadMessageHandler exited
ipcThread exited
Flushed 14747 addresses to peers.dat 154ms
Committing 14044 changed transactions to coin database...
Flush(true)
DBFlush(true) ended 1ms
Bitcoin exited
So, apparently, this message is just a misleading facade of a database corruption. Is there anything I can do about it? I tried re-starting, but it always crashes in the end... My database is inherited from a very old 0.3.x client.
@laanwj @sipa Should this error induce a question to rebuild via the known GUI dialog-box? That is still something where I think we also could have a problem with this users OS and ThreadSafeMessageBox.
https://github.com/bitcoin/bitcoin/blob/master/src/init.cpp#L833
Hi Wladimir, I think you nailed it. Considering my crash logs your explanation sounds very sensible. I can test is as soon as the new binary is released. Thanks!