Author

Topic: Armory - Discussion Thread - page 190. (Read 521829 times)

hero member
Activity: 812
Merit: 1000
June 10, 2012, 08:56:30 PM
I had a power failure while Armory and Bitcoin-qt was running. When I resumed, Armory crashed after 'Loading Blockchain'.
I ran:
Code:
$ python /usr/share/armory/ArmoryQt.py
....
/home/user/.bitcoin/blk0001.dat is 1609.27 MB
segmentation fault
$ _

What do I need to do to recover Armory?

Ack!  I haven't seen a segmentation fault in a while...

I bet there was a partial-write to the blk0001.dat file, which Armory then tries to read through and ends up with a segmentation fault.   I do have a check for that condition, but it doesn't get much testing...

Honestly, I don't know what to do besides attempting to re-download the blockchain, but that seems excessive and not guaranteed to work if Bitcoin-Qt works fine.  I'll have to get back to you on that one...

does armory use the windows registry at all? (i haven't checked)

Ahh, excellent question!  It does actually use the registry to register itself as the URI-handler for "bitcoin:" links, and I just checked that it does assume default installation location.  I just made a note on my ToDo list for supporting non-standard install locations.

So if you move it around, it will incorrectly set the URI-handler for clicking "bitcoin:" links, but that shouldn't affect general usage (at least not yet).  It won't cause any errors or crashing, it will just disable that convenience functionality.

well, i'm not saying you have to spend time re-thinking everything for portable mode just for me, but in such a mode it shouldn't touch the registry whatsoever. any saved settings should be in config files in armory's own directory.

although, i'd be interested to hear if i'm alone in this use case or not.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 10, 2012, 08:38:15 PM
I had a power failure while Armory and Bitcoin-qt was running. When I resumed, Armory crashed after 'Loading Blockchain'.
I ran:
Code:
$ python /usr/share/armory/ArmoryQt.py
....
/home/user/.bitcoin/blk0001.dat is 1609.27 MB
segmentation fault
$ _

What do I need to do to recover Armory?

Ack!  I haven't seen a segmentation fault in a while...

I bet there was a partial-write to the blk0001.dat file, which Armory then tries to read through and ends up with a segmentation fault.   I do have a check for that condition, but it doesn't get much testing...

Honestly, I don't know what to do besides attempting to re-download the blockchain, but that seems excessive and not guaranteed to work if Bitcoin-Qt works fine.  I'll have to get back to you on that one...

does armory use the windows registry at all? (i haven't checked)

Ahh, excellent question!  It does actually use the registry to register itself as the URI-handler for "bitcoin:" links, and I just checked that it does assume default installation location.  I just made a note on my ToDo list for supporting non-standard install locations.

So if you move it around, it will incorrectly set the URI-handler for clicking "bitcoin:" links, but that shouldn't affect general usage (at least not yet).  It won't cause any errors or crashing, it will just disable that convenience functionality.
hero member
Activity: 812
Merit: 1000
June 10, 2012, 08:28:43 PM
  • (1) Armory installed into ProgramFiles directory

For (1): There is no problem moving this directory to another location. Just be aware that the shortcuts that are automatically created will become invalid.  But you can send the default shortcut to your desktop and change the target to the new location of Armory.exe

does armory use the windows registry at all? (i haven't checked)

full member
Activity: 196
Merit: 100
Web Dev, Db Admin, Computer Technician
June 10, 2012, 08:03:46 PM
I had a power failure while Armory and Bitcoin-qt was running. When I resumed, Armory crashed after 'Loading Blockchain'.
I ran:
Code:
$ python /usr/share/armory/ArmoryQt.py
....
/home/user/.bitcoin/blk0001.dat is 1609.27 MB
segmentation fault
$ _

What do I need to do to recover Armory?
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 10, 2012, 07:38:20 PM
thanks so much for your reply.

i didn't mean to offend; "infecting" is just my personal term for any software that doesn't run as a portable app.

and there's no way i'd want to change my APPDATA variable, because then windows would probably start infecting my nice clean z:\ with all sorts of crap.

after i've run the .msi, and it auto installs to program files,  is it possible to move the whole folder somewhere else?

i really would like to see a fully portable mode (no installation!) and will send you over a few coins.

thanks!


Three things need to be "available" for Armory to run:

  • (1) Armory installed into ProgramFiles directory
  • (2) Blockchain in the APPDATA directory
  • (3) Armory "home" in the "--datadir" directory

For (1): There is no problem moving this directory to another location. Just be aware that the shortcuts that are automatically created will become invalid.  But you can send the default shortcut to your desktop and change the target to the new location of Armory.exe

For (2): My last post described how it could be done, right now:  but it probably requires creating a two-line batch file and then changing the shortcut to point to that

For (3): Just run with the " --datadir=Z:\appdir\whatever" option (which can be added to the shortcut or batch file)

It should be straightforward to add an option to the installer to "fix" (1) but I will not be doing that on the next release (enough to deal with, at the moment...).  I will add support for (2) in the next release.  And (3) is already supported.

I had multiple requests to make the Armory-home-dir portable (3), so I did that not realizing that such users probably also have non-standard bitcoin installs...

hero member
Activity: 812
Merit: 1000
June 10, 2012, 07:29:09 PM
Caveats:
  • Armory must have access to the Satoshi-created blk0001.dat file -- read-only access to see new blocks (usually autodetected)
this is where i'm having a problem with armory.

99% of the things i run on my windows PC are in the form of 'portable apps'. i don't generally ever install anything, and that includes my bitcoin clients and blockchains which are on Z:\appdata

anyone know how to tell armory where my blk0001.dat file is, since it doesn't auto-detect it?

You can run Armory with the " --datadir=Z:\New\Dir\Armory" to tell it where to put all of the Armory-related data and wallet files.  

However, there is no option for setting where Armory should look for the Bitcoin-Qt/bitcoind home directory.  Armory autodetects based on environment variables -- specifically "os.getenv('APPDATA')" in Windows, "os.getenv('HOME')" in Linux.  Looking at the code now, I don't see why I can't add an option for this, it just isn't in version 0.77-alpha.    I have added to my list of things for the next release -- add a customizable bitcoin-home option.  

Until then, if you are really anxious to try, you can permanently change your "APPDATA" environment variable to point to "Z:\appdata" from the control panel (search for "environment" in the upper-right corner).  

If you are constantly changing your "APPDATA" directory depending on your context, you can dynamically change it from the command-line using the "set" command.  I'm not familiar with the mechanics of doing this through launchers/shortcuts.  You might have to make a .bat file that says
Code:
set APPDATA=Z:\appdata
C:\path\to\installed\Armory.exe

Or just wait a week.  I'll have a major release out with this option added.

By the way, I don't know if I'd call it "infecting"... it's completely normal behavior for programs to make a directory for themselves in the "APPDATA" directory.  Just like programs install themselves to the C:\Program Files" directory.  I agree it should be customizable, but there's nothing wrong with that as the default choice.  I'll look into adding an installer option for these things...

thanks so much for your reply.

i didn't mean to offend; "infecting" is just my personal term for any software that doesn't run as a portable app.

and there's no way i'd want to change my APPDATA variable, because then windows would probably start infecting my nice clean z:\ with all sorts of crap.

after i've run the .msi, and it auto installs to program files,  is it possible to move the whole folder somewhere else?

i really would like to see a fully portable mode (no installation!) and will send you over a few coins.

thanks!
sr. member
Activity: 438
Merit: 256
Redot.com - Trade Like a Pro, Earn 70% of Referral
June 10, 2012, 04:42:19 PM

Yeah, odd.  Who has an "A:" drive anymore? Wink

But seriously, 0.56-alpha is "ancient".  It appears that you are, perhaps, running the old version of Armory.  In fact, that version just flat out loads everything in to RAM, doesn't even do any kind of file mapping...

It sounds like there's some shortcuts/links/environment variables that are set incorrectly.  If I were you, I would remove the stuff on the A:, remove Armory, and then reinstall the correct version.  Then make sure that the shortcut you use is pointing to the right place, which will be "C:\Program Files (x86)\Armory Bitcoin Client\Armory\Armory.exe".

Yeah, for some off reason when I first installed the drive(primary is SSD) it had the letter set to A and before I realized that could cause an issue it was too late. Like installing Diablo, had to change the drive letter to install then change it back and reroute all of the shortcuts  Angry

Went ahead and deleted the .56 no issues anymore. I appreciate your quick help.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 10, 2012, 04:29:48 PM
Ack!  That's not good, actually.  I wonder if the wallet file somehow got corrupted (hasn't happened yet! but there's always a first...).  Can you now run in online-mode without the wallet?  Create new wallets?  Restart Armory with the new wallets?

If you've got only a few BTC in the wallet, I might just buy it from you and then I can go hex diving to figure out what happened.  (obviously, you'd switch to a new wallet, after that)



The wallet only has ~22 and some change.
Deleting them worked imported back into Armory .77(the new one I downloaded)through the interface.


Although it did hang for a little while and did throw an error:
Faulting application name: ArmoryQt.exe, version: 0.0.0.0, time stamp: 0x4918017b
Faulting module name: _CppBlockUtils.pyd, version: 0.0.0.0, time stamp: 0x4f5c3c9c
Exception code: 0xc0000005
Fault offset: 0x0000000000001c03
Faulting process id: 0x1250
Faulting application start time: 0x01cd474d5497b76a
Faulting application path: A:\Armory_Win64_0.56-alpha\ArmoryQt.exe
Faulting module path: A:\Armory_Win64_0.56-alpha\_CppBlockUtils.pyd
Report Id: b2d6cf4c-b340-11e1-b8da-8c89a51b6240

which I find odd it looked at the other version  Huh

Yeah, odd.  Who has an "A:" drive anymore? Wink

But seriously, 0.56-alpha is "ancient".  It appears that you are, perhaps, running the old version of Armory.  In fact, that version just flat out loads everything in to RAM, doesn't even do any kind of file mapping...

It sounds like there's some shortcuts/links/environment variables that are set incorrectly.  If I were you, I would remove the stuff on the A:, remove Armory, and then reinstall the correct version.  Then make sure that the shortcut you use is pointing to the right place, which will be "C:\Program Files (x86)\Armory Bitcoin Client\Armory\Armory.exe".
sr. member
Activity: 438
Merit: 256
Redot.com - Trade Like a Pro, Earn 70% of Referral
June 10, 2012, 04:16:28 PM
Ack!  That's not good, actually.  I wonder if the wallet file somehow got corrupted (hasn't happened yet! but there's always a first...).  Can you now run in online-mode without the wallet?  Create new wallets?  Restart Armory with the new wallets?

If you've got only a few BTC in the wallet, I might just buy it from you and then I can go hex diving to figure out what happened.  (obviously, you'd switch to a new wallet, after that)



The wallet only has ~22 and some change.
Deleting them worked imported back into Armory .77(the new one I downloaded)through the interface.


Although it did hang for a little while and did throw an error:
Faulting application name: ArmoryQt.exe, version: 0.0.0.0, time stamp: 0x4918017b
Faulting module name: _CppBlockUtils.pyd, version: 0.0.0.0, time stamp: 0x4f5c3c9c
Exception code: 0xc0000005
Fault offset: 0x0000000000001c03
Faulting process id: 0x1250
Faulting application start time: 0x01cd474d5497b76a
Faulting application path: A:\Armory_Win64_0.56-alpha\ArmoryQt.exe
Faulting module path: A:\Armory_Win64_0.56-alpha\_CppBlockUtils.pyd
Report Id: b2d6cf4c-b340-11e1-b8da-8c89a51b6240

which I find odd it looked at the other version  Huh


Edit: I have another wallet that has maybe .0001 BTC if you want it to dive into. Or any of my corrupt files for that matter.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 10, 2012, 03:49:52 PM
Ack!  That's not good, actually.  I wonder if the wallet file somehow got corrupted (hasn't happened yet! but there's always a first...).  Can you now run in online-mode without the wallet?  Create new wallets?  Restart Armory with the new wallets?

If you've got only a few BTC in the wallet, I might just buy it from you and then I can go hex diving to figure out what happened.  (obviously, you'd switch to a new wallet, after that)

sr. member
Activity: 438
Merit: 256
Redot.com - Trade Like a Pro, Earn 70% of Referral
June 10, 2012, 03:46:45 PM
Ok, I copied my .wallets and deleted the ones in the roaming folder pasted them back in and loaded the newest version of Armory in offline mode. Loaded up fine and everything the balances show (...) which I assume is right because of it not being online.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 10, 2012, 03:30:07 PM
Tried to see if offline mode would work, it did not. Same error as before but with
"Unable to collect System Pagefile performance data. The first four bytes (DWORD) of the Data section contains the status code."
As well.

 I suppose I'll just wait a week and see what my balance looks like  Grin


What the hell is that?  I am definitely not familiar, at all, with that error.  Can't even begin to imagine what would cause it.  Especially if it used to run on your system and now doesn't...? 

I suspect it's still MMAP-related, and thus will go away with the new version.   I'm working feverishly on it, and will even be taking a day off of work to work on it...

By the way, you should backup your wallet (for sure!) and then move it to a different location then retry offline mode -- I just want to confirm that it is not an issue with the wallet.
sr. member
Activity: 438
Merit: 256
Redot.com - Trade Like a Pro, Earn 70% of Referral
June 10, 2012, 03:25:05 PM
Tried to see if offline mode would work, it did not. Same error as before but with
"Unable to collect System Pagefile performance data. The first four bytes (DWORD) of the Data section contains the status code."
As well.

 I suppose I'll just wait a week and see what my balance looks like  Grin
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 10, 2012, 03:13:20 PM
Caveats:
  • Armory must have access to the Satoshi-created blk0001.dat file -- read-only access to see new blocks (usually autodetected)
this is where i'm having a problem with armory.

99% of the things i run on my windows PC are in the form of 'portable apps'. i don't generally ever install anything, and that includes my bitcoin clients and blockchains which are on Z:\appdata

anyone know how to tell armory where my blk0001.dat file is, since it doesn't auto-detect it?

You can run Armory with the " --datadir=Z:\New\Dir\Armory" to tell it where to put all of the Armory-related data and wallet files.  

However, there is no option for setting where Armory should look for the Bitcoin-Qt/bitcoind home directory.  Armory autodetects based on environment variables -- specifically "os.getenv('APPDATA')" in Windows, "os.getenv('HOME')" in Linux.  Looking at the code now, I don't see why I can't add an option for this, it just isn't in version 0.77-alpha.    I have added to my list of things for the next release -- add a customizable bitcoin-home option.  

Until then, if you are really anxious to try, you can permanently change your "APPDATA" environment variable to point to "Z:\appdata" from the control panel (search for "environment" in the upper-right corner).  

If you are constantly changing your "APPDATA" directory depending on your context, you can dynamically change it from the command-line using the "set" command.  I'm not familiar with the mechanics of doing this through launchers/shortcuts.  You might have to make a .bat file that says
Code:
set APPDATA=Z:\appdata
C:\path\to\installed\Armory.exe

Or just wait a week.  I'll have a major release out with this option added.

By the way, I don't know if I'd call it "infecting"... it's completely normal behavior for programs to make a directory for themselves in the "APPDATA" directory.  Just like programs install themselves to the C:\Program Files" directory.  I agree it should be customizable, but there's nothing wrong with that as the default choice.  I'll look into adding an installer option for these things...


Having a slight issue starting Armory up, it loads for about a minute or so and then it says that it has stopped responding. I have 8gb of memory so I doubt its all getting used, tried a different version of armory and the same thing occured  Huh I received a payment not 5 hours ago restarted my computer and now its gone haywire. I still have my wallets so I am not too worried just wanted to see if my miner was paying out.
Andrew

edit: in event viewer it says:
" Faulting application name: ArmoryQt.exe, version: 0.0.0.0, time stamp: 0x4918017b
Faulting module name: _CppBlockUtils.pyd, version: 0.0.0.0, time stamp: 0x4f5c3c9c
Exception code: 0xc0000005"

You can be assured that your wallets/coins are fine.  The issue is likely similar to other users who have reported issues -- mmap() in Windows is just bad -- which is why the next major release is a complete overhaul of the blockchain utilities without using it at all!  This will improve load time, work on any system with any amount of RAM, and should handle arbitrary blockchain sizes.  I got caught off-guard by the rapid acceleration of the blockchain size and was not ready to fix it.  My guess is, that there will be more and more users having this issue...

Until then, I don't have a good solution, other than to check the size of C:\Users\yourname\AppData\Roaming\Bitcoin\blk0001.dat and observe if there's a blk0002.dat.  Armory will definitely stop working if that's the case, and the problem will fix itself for 2-3 weeks if you delete all your blk000X.dat files and let bitcoind/-qt redownload the blockchain.  In the next week, I will have the fixed version out.

If you can't wait, you can always run Armory in "Offline" mode and extract all of your private keys (using the "Backup Individual Keys") and import or sweep them using another application.

P.S. -- An extreme alternative is to load your wallet on a linux system/VM, which still runs fine. 
sr. member
Activity: 438
Merit: 256
Redot.com - Trade Like a Pro, Earn 70% of Referral
June 10, 2012, 02:38:02 PM
Having a slight issue starting Armory up, it loads for about a minute or so and then it says that it has stopped responding. I have 8gb of memory so I doubt its all getting used, tried a different version of armory and the same thing occured  Huh I received a payment not 5 hours ago restarted my computer and now its gone haywire. I still have my wallets so I am not too worried just wanted to see if my miner was paying out.
Andrew



edit: in event viewer it says:
" Faulting application name: ArmoryQt.exe, version: 0.0.0.0, time stamp: 0x4918017b
Faulting module name: _CppBlockUtils.pyd, version: 0.0.0.0, time stamp: 0x4f5c3c9c
Exception code: 0xc0000005"
hero member
Activity: 812
Merit: 1000
June 10, 2012, 01:27:23 AM
Caveats:
  • Armory must have access to the Satoshi-created blk0001.dat file -- read-only access to see new blocks (usually autodetected)

this is where i'm having a problem with armory.

99% of the things i run on my windows PC are in the form of 'portable apps'. i don't generally ever install anything, and that includes my bitcoin clients and blockchains which are on Z:\appdata

anyone know how to tell armory where my blk0001.dat file is, since it doesn't auto-detect it?
hero member
Activity: 812
Merit: 1000
June 10, 2012, 01:14:40 AM
i've just run this for the very first time and am disappointed at the way it infects my windows drive and especially the appdata folder.

is there any way to run this fully portable, so that you can choose where it runs from, where it saves wallets, etc?
legendary
Activity: 4536
Merit: 3188
Vile Vixen and Miss Bitcointalk 2021-2023
June 10, 2012, 12:06:39 AM
And yet the python 2.7 and python 2.6 versions still both work fine on python 2.6 (except that installing the python 2.7 version requires --force-depends, obviously). Have you got around to seeing if it's possible to statically link the python interpreter? It doesn't look like these problems are going to go away as long as dynamic linking is involved.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 09, 2012, 10:51:35 PM
Good news:  I got the 11.04 VM installed, confirmed the error, and then confirmed the python2.6 package works.   Remove the old package using sudo dpkg -r armory and then install the python2.6 package as normal.

I have no idea why this is.  I will have to do some more exhaustive testing to figure out why this is happening.  Perhaps the 2.7 package should be fore 11.10+ only...
full member
Activity: 196
Merit: 100
Web Dev, Db Admin, Computer Technician
June 09, 2012, 10:50:02 PM
Code:
python /usr/share/armory/ArmoryQt.py --offline
********************************************************************************
Loading Armory Engine:
   Armory Version:       0.77
   PyBtcAddress Version: 1.00
   PyBtcWallet  Version: 1.35
Detected Operating system: Linux
   User home-directory   : /home/user
   Satoshi BTC directory : /home/user/.bitcoin/
   Satoshi blk0001.dat   : /home/user/.bitcoin/blk0001.dat
   Armory home dir       : /home/user/.armory/
***ERROR:  C++ block utilities not available.
           Make sure that you have the SWIG-compiled modules
           in the current directory (or added to the PATH)
           Specifically, you need:
                  CppBlockUtils.py     and
                  _CppBlockUtils.so
Traceback (most recent call last):
  File "/usr/share/armory/ArmoryQt.py", line 41, in
    from armoryengine import *
  File "/usr/share/armory/armoryengine.py", line 364, in
    import CppBlockUtils as Cpp
  File "/usr/share/armory/CppBlockUtils.py", line 25, in
    _CppBlockUtils = swig_import_helper()
  File "/usr/share/armory/CppBlockUtils.py", line 21, in swig_import_helper
    _mod = imp.load_module('_CppBlockUtils', fp, pathname, description)
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/share/armory/_CppBlockUtils.so)

I get the same message whether I run with or without '--offline'.
Jump to: