Author

Topic: Armory keep crashing with 'BDM was not ready for your request! Waited 20 sec.' (Read 2082 times)

legendary
Activity: 1428
Merit: 1093
Core Armory Developer
Just an update on this:  we believe that most of the crash-when-reach-99%-scanning problems are related to the same issue, and is resolved in the latest testing version:

https://bitcointalksearch.org/topic/please-help-test-armory-091-beta-522866

Please try it out and post here or there with your results.  We're pretty excited that we think we've isolated and neutralized this bug!  It would great to know if there's still cases that aren't fixed.
legendary
Activity: 3766
Merit: 1364
Armory Developer
Great - thanks for the update!  I'll be looking out for it.  Smiley

Would you have a rough idea of the time frame for that coming release?  Do you think about days or weeks (or hours, or months)?

I am wondering whether I can simply wait for that release, or if I need to find an alternative way to access the coins stuck in the Armory wallet before that time.
I am not worried about the safety of the coins in themselves, it's simply that I cannot use them right now, and will soon have to.

If all goes well, 2 weeks from now
full member
Activity: 138
Merit: 100
Great - thanks for the update!  I'll be looking out for it.  Smiley

Would you have a rough idea of the time frame for that coming release?  Do you think about days or weeks (or hours, or months)?

I am wondering whether I can simply wait for that release, or if I need to find an alternative way to access the coins stuck in the Armory wallet before that time.
I am not worried about the safety of the coins in themselves, it's simply that I cannot use them right now, and will soon have to.
legendary
Activity: 3766
Merit: 1364
Armory Developer
We're putting out a new release soon that has fixes covering possible culprits. The log files are only helpful to an extent, they have few clues about why the BDM (Armory's C++ backend) is hanging. All of the bugs presented here are a symptom of this.
full member
Activity: 138
Merit: 100
I am also having what seems like the same issue than tazdas, bigpao and others:

  "BDM was not ready for your request!  Waited 20 sec."
  "Error in heartbeat function"
    File "ArmoryQt.py", line 4684, in Heartbeat, etc.

I initially posted in this thread:
https://bitcointalk.org/index.php?topic=500720.new#new

Did anyone find a solution?


I have sent an email to  [email protected]  yesterday with my logs and information.  I didn't receive a reply, but it was only yesterday, so I should give goatpig and others more time.  Smiley

I am happy to help troubleshoot that error (by running tests, giving more information, etc.) if it can help the development of Armory.


Edit:  Small correction for clarity.
member
Activity: 73
Merit: 10
I think this is the same issue I reported below. I have not solved it yet but Armory support has been trying to help via emails.. They did provide me a dev build to test ... not successful yet ...

https://bitcointalksearch.org/topic/armory-090-beta-hanging-428346

newbie
Activity: 6
Merit: 0
I sent the log via email to [email protected].
As noticed, RAM and CPU load are not high and the Windows has some program running : Bitcoin-Qt, Armory, Skype and other anti-virus softwares.

The following is the info from log file:

2014-02-13 16:30 (INFO) -- armoryengine.pyc:809 - ************************************************************
2014-02-13 16:30 (INFO) -- armoryengine.pyc:810 - Invoked: C:\Program Files (x86)\Armory\ArmoryQt.exe
2014-02-13 16:30 (INFO) -- armoryengine.pyc:811 - ************************************************************
2014-02-13 16:30 (INFO) -- armoryengine.pyc:812 - Loading Armory Engine:
2014-02-13 16:30 (INFO) -- armoryengine.pyc:813 -    Armory Version        : 0.90
2014-02-13 16:30 (INFO) -- armoryengine.pyc:814 -    PyBtcWallet  Version  : 1.35
2014-02-13 16:30 (INFO) -- armoryengine.pyc:815 - Detected Operating system: Windows
2014-02-13 16:30 (INFO) -- armoryengine.pyc:816 -    OS Variant            : 7-6.1.7601-SP1-Multiprocessor Free
2014-02-13 16:30 (INFO) -- armoryengine.pyc:817 -    User home-directory   : C:\Users\Admin\AppData\Roaming
2014-02-13 16:30 (INFO) -- armoryengine.pyc:818 -    Satoshi BTC directory : C:\Users\Admin\AppData\Roaming\Bitcoin\
2014-02-13 16:30 (INFO) -- armoryengine.pyc:819 -    Armory home dir       : C:\Users\Admin\AppData\Roaming\Armory\
2014-02-13 16:30 (INFO) -- armoryengine.pyc:820 - Detected System Specs    :
2014-02-13 16:30 (INFO) -- armoryengine.pyc:821 -    Total Available RAM   : 31.98 GB
2014-02-13 16:30 (INFO) -- armoryengine.pyc:822 -    CPU ID string         : Intel64 Family 6 Model 45 Stepping 7, GenuineIntel
2014-02-13 16:30 (INFO) -- armoryengine.pyc:823 -    Number of CPU cores   : 8 cores
2014-02-13 16:30 (INFO) -- armoryengine.pyc:824 -    System is 64-bit      : False
2014-02-13 16:30 (INFO) -- armoryengine.pyc:825 -    Preferred Encoding    : cp1252
legendary
Activity: 3766
Merit: 1364
Armory Developer
The BDM issue means Armory's backend is hanging somewhere while processing blockchain related data. The BDM stops responding and the issue trickles down into Armory's operations and will make it crash eventually.

You could always try to vm ubuntu and run Armory from that, see if the issue reappears. How much RAM is Armory using before it crashes? And is it maxing a CPU core?
newbie
Activity: 6
Merit: 0
I am not sure that this problem is related to the below topic or not:
https://bitcointalksearch.org/topic/bug-in-armory-unusably-slow-and-rescanning-everything-upon-startup-373287

Anyway, I tried to clear mempool.bin as suggest in that topic. Unfortunately, it makes Armory run for a while and keep getting the same error again and Armory stop running  Cry

I already also tested 'ping' to make sure that the connection to the internet is always available. When the Armory crash with the error message, there has no disconnect occurred between Windows7 and the ISP. So, I think the problem is not about the connection to the internet but not sure what the 'BDM' means?
 
Does anyone have any idea how can I make Armory stable on one of my machine?

newbie
Activity: 6
Merit: 0
I found more error after several attempts restarting Armory and let them run for a day. As noticed, the error always occur after received new block.



2014-02-05 02:54 (ERROR) -- armoryengine.pyc:12346 - BDM was not ready for your request!  Waited 20 sec.
2014-02-05 02:54 (ERROR) -- armoryengine.pyc:12347 -   getattr   name: getTopBlockHeight
2014-02-05 02:54 (ERROR) -- armoryengine.pyc:12348 - BDM currently doing: UpdateWallets (98612157)
2014-02-05 02:54 (ERROR) -- armoryengine.pyc:12349 - Waiting for completion: ID= 41032519
2014-02-05 02:54 (ERROR) -- armoryengine.pyc:12350 - Direct traceback
2014-02-05 02:54 (ERROR) -- armoryengine.pyc:12353 - Traceback:
Traceback (most recent call last):
  File "armoryengine.pyc", line 12343, in passthruFunc
  File "Queue.pyc", line 176, in get
Empty
2014-02-05 02:54 (ERROR) -- ArmoryQt.py:4826 - Error in heartbeat function
Traceback (most recent call last):
  File "ArmoryQt.py", line 4799, in Heartbeat
  File "ArmoryQt.py", line 2052, in createCombinedLedger
  File "armoryengine.pyc", line 7278, in getBalance
  File "CppBlockUtils.pyc", line 1172, in getSpendableBalance
NotImplementedError: Wrong number or type of arguments for overloaded function 'BtcWallet_getSpendableBalance'.
  Possible C/C++ prototypes are:
    BtcWallet::getSpendableBalance(uint32_t)
    BtcWallet::getSpendableBalance()
member
Activity: 73
Merit: 10
update : getting the coins out turned out to be easy. Start up in offline mode and backup... export key lists. Then import those keys into the official Bitcoin client. And to think I was worried about my coins all for nothing. Still doesn't fix the issue with the crash though but at least my coins are safe.
member
Activity: 73
Merit: 10
Hi,

I've got this problem too and have quite a few coins stuck in there that need rescuing.

I've replicated this problem on Windows and Linux. I have tried resetting and even tried a fresh install of Armory and Bitcoin on a new PC, and last night redownloaded the blockchain overnight. Armory still crashes when I restore that particular wallet. That wallet has a lot of addresses and a lot of transactions. In that wallet, I have created one address per mining rig and get paid out daily, hence the large number of transactions in it. Other wallets with just a small handful of transactions are fine.

The problem persists too with both the binary downloads (both Windows and Ubuntu) as well as when building from source on Github on Ubuntu. Resources (i7 quad, 8 GB) are reasonable, with Python taking up around 20% of memory at peak with 1.3 GB still available.

The last few lines of the armorylog.txt file are the same as everyone else's on this thread.

Code:
2014-02-03 19:44 (ERROR) -- armoryengine.py:12346 - BDM was not ready for your request!  Waited 20 sec.
2014-02-03 19:44 (ERROR) -- armoryengine.py:12347 -   getattr   name: getTopBlockHeight
2014-02-03 19:44 (ERROR) -- armoryengine.py:12348 - BDM currently doing: Passthrough (70518724)
2014-02-03 19:44 (ERROR) -- armoryengine.py:12349 - Waiting for completion: ID= 54881326
2014-02-03 19:44 (ERROR) -- armoryengine.py:12350 - Direct traceback
2014-02-03 19:44 (ERROR) -- armoryengine.py:12353 - Traceback:
Traceback (most recent call last):
  File "/home/don/BitcoinArmory/armoryengine.py", line 12343, in passthruFunc
    out = self.outputQueue.get(True, self.mtWaitSec)
  File "/usr/lib/python2.7/Queue.py", line 176, in get
    raise Empty
Empty

When running from the command line, I also see the following errors spewed out just before it crashes

Code:
(ERROR) armoryengine.py:12346 - BDM was not ready for your request!  Waited 20 sec.
(ERROR) armoryengine.py:12347 -   getattr   name: getTopBlockHeight
(ERROR) armoryengine.py:12348 - BDM currently doing: Passthrough (70518724)
(ERROR) armoryengine.py:12349 - Waiting for completion: ID= 54881326
(ERROR) armoryengine.py:12350 - Direct traceback
  File "ArmoryQt.py", line 5133, in
    os._exit(QAPP.exec_())
  File "/home/don/BitcoinArmory/qt4reactor.py", line 232, in _iterate
    self.doIteration(delay, fromqt)
  File "/home/don/BitcoinArmory/qt4reactor.py", line 244, in doIteration
    self.qApp.processEvents(QEventLoop.AllEvents, delay * 1000)
  File "/home/don/BitcoinArmory/qt4reactor.py", line 103, in read
    log.callWithLogger(w, _read)
  File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 88, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 73, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
    return func(*args,**kw)
  File "/home/don/BitcoinArmory/qt4reactor.py", line 102, in _read
    self.reactor._iterate(fromqt=True)
  File "/home/don/BitcoinArmory/qt4reactor.py", line 231, in _iterate
    self.runUntilCurrent()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 824, in runUntilCurrent
    call.func(*call.args, **call.kw)
  File "ArmoryQt.py", line 4684, in Heartbeat
    self.finishLoadBlockchain()
  File "ArmoryQt.py", line 1916, in finishLoadBlockchain
    self.walletMap[wltID].detectHighestUsedIndex(True)  # expand wlt if necessary
  File "/home/don/BitcoinArmory/armoryengine.py", line 7911, in detectHighestUsedIndex
    self.syncWithBlockchainLite(0)
  File "/home/don/BitcoinArmory/armoryengine.py", line 7213, in syncWithBlockchainLite
    self.lastSyncBlockNum = TheBDM.getTopBlockHeight(wait=True)
  File "/home/don/BitcoinArmory/armoryengine.py", line 12351, in passthruFunc
    traceback.print_stack()
(ERROR) armoryengine.py:12353 - Traceback:
Traceback (most recent call last):
  File "/home/don/BitcoinArmory/armoryengine.py", line 12343, in passthruFunc
    out = self.outputQueue.get(True, self.mtWaitSec)
  File "/usr/lib/python2.7/Queue.py", line 176, in get
    raise Empty
Empty
Segmentation fault (core dumped)

I have about a dozen miners paying daily. It started acting up a bit after 3 weeks or so after moving to Armory and lately it has totally failed to start up. I fear that this could be a major issue for other high-volume transaction users.

Any help in fixing this and unfreezing my coins would be very much appreciated.
newbie
Activity: 6
Merit: 0
I got the error after I left my computers at night and start to use it in the morning. There should has no activity during the problem occurred.  Embarrassed
newbie
Activity: 4
Merit: 0
Here's the whole story: Armory started crashing a while back (unfortunately I didn't check the logfile back then so I'm not sure if it was the same error) and I decided to wipe everything and start clean. So I uninstalled Armory, deleted everything in the AppData/Roaming/Armory & AppData/Roaming/Bitcoin folders. Reinstalled Armory, re-downloaded the blockchain, all ok. Created a new wallet & received payments on it. Everything good so far.

Then I tried to import the wallet I was having problems with from my paper backup (1.35a encryption, if that's relevant). This works, it recognises my wallet. Armory then gives me a message that it's going to rescan the transaction history to find the transactions associated with the newly imported wallet. The progress bar goes to 100%, then when I would expect it to load the transactions overview, it crashes with the attatched error.

Anything info in particular you're looking for to help you?
legendary
Activity: 3766
Merit: 1364
Armory Developer
Yep, same issue here... I have a wallet that I imported from a paper backup, after that Armory rescans the blockchain and then crashes.

Log is here

Traceback (most recent call last):
  File "ArmoryQt.py", line 4684, in Heartbeat
  File "ArmoryQt.py", line 1917, in finishLoadBlockchain
  File "armoryengine.pyc", line 7851, in fillAddressPool
  File "armoryengine.pyc", line 7817, in computeNextAddress
  File "CppBlockUtils.pyc", line 1164, in addScrAddress_5_
TypeError: in method 'BtcWallet_addScrAddress_5_', argument 4 of type 'uint32_t'

This is an entirely more interesting error, I'll get someone on it, thanks for the log.

Edit: Guess I shot myself in the foot with this one. I hoped to get someone else on this issue but I got 'volunteered' for it =P

At any rate, thanks for the log files. The more details you can give me about your use of Armory before the crash occurs, the more clues it'll give me
newbie
Activity: 4
Merit: 0
Yep, same issue here... I have a wallet that I imported from a paper backup, after that Armory rescans the blockchain and then crashes.

Log is here
sr. member
Activity: 430
Merit: 250
It appears I have the same problem, this is when creating a new wallet and the "scanning transaction history" phase has to run all over again. Here's the log.
legendary
Activity: 3766
Merit: 1364
Armory Developer
The empty queue is not an error. Queue.Queue raises when it is empty, that's just its mechanism to report there's is nothing left to pop.

The version your reported for BitcoinQt is actually Qt's version, not Bitcoin.

You have to describe your behavior before the crash first. Then possibly send me a log file at [email protected]
newbie
Activity: 6
Merit: 0
I have Bitcoin Qt and Armory (same wallet) running on three computers (two Windows 7 and one Windows Cool connected to the same network.

In Windows 7:
- All the setting is the default on Armory.
- 'Let Armory run Bitcoin-Qt/bitcoinnd in the background' is checked.
- All data directory is default folders.

In Windows 8:
- All the setting is the default on Armory.
- 'Let Armory run Bitcoin-Qt/bitcoinnd in the background' is un-checked.
- All data directory is default folders.


The Armory on Windows 7 always crash (not response) and I have to close and re-open the applications on these two machines. There has no problem with Armory on Windows 8. As I checked there always had the error as below when Armory crash:

---------------------------------------------------------------------------------------------------------------------------------
2014-01-29 04:00 (ERROR) -- armoryengine.pyc:12346 - BDM was not ready for your request!  Waited 20 sec.
2014-01-29 04:00 (ERROR) -- armoryengine.pyc:12347 -   getattr   name: hasTxWithHash
2014-01-29 04:00 (ERROR) -- armoryengine.pyc:12348 - BDM currently doing: Passthrough (83087279)
2014-01-29 04:00 (ERROR) -- armoryengine.pyc:12349 - Waiting for completion: ID= 83087279
2014-01-29 04:00 (ERROR) -- armoryengine.pyc:12350 - Direct traceback
2014-01-29 04:00 (ERROR) -- armoryengine.pyc:12353 - Traceback:
Traceback (most recent call last):
  File "armoryengine.pyc", line 12343, in passthruFunc
  File "Queue.pyc", line 176, in get
Empty
2014-01-29 04:01 (ERROR) -- armoryengine.pyc:12346 - BDM was not ready for your request!  Waited 20 sec.
2014-01-29 04:01 (ERROR) -- armoryengine.pyc:12347 -   getattr   name: hasTxWithHash
2014-01-29 04:01 (ERROR) -- armoryengine.pyc:12348 - BDM currently doing: Passthrough (83087279)
2014-01-29 04:01 (ERROR) -- armoryengine.pyc:12349 - Waiting for completion: ID= 51653993
2014-01-29 04:01 (ERROR) -- armoryengine.pyc:12350 - Direct traceback
2014-01-29 04:01 (ERROR) -- armoryengine.pyc:12353 - Traceback:
Traceback (most recent call last):
  File "armoryengine.pyc", line 12343, in passthruFunc
  File "Queue.pyc", line 176, in get
Empty
2014-01-29 04:01 (ERROR) -- armoryengine.pyc:13289 - ErrorOut var over-represented number of errors!
---------------------------------------------------------------------------------------------------------------------------------

Please anyone suggest that how should I make Armory more stable on Windows 7?

Armory version 0.90-beta
BitcoinQt version 4.8.3
Jump to: