sparrowwallet / sparrow

Desktop Bitcoin Wallet focused on security and privacy. Free and open source.
https://sparrowwallet.com/
Apache License 2.0
1.33k stars 189 forks source link

Sparrow crashes with "Child process exited with code 1" #594

Closed icheyne closed 2 years ago

icheyne commented 2 years ago

I installed Sparrow v1.6.5 on Windows 11 and connected successfully to my Core node. I clicked Create Wallet.

Sparrow crashed and returned this error:

image

I got the same error if I tried to create a wallet offline. Also get the message if I close the app without trying to create a wallet.

debug.log sparrow.log

craigraw commented 2 years ago

Are there any Windows logs (say in Event Viewer) that might help to locate what is causing this? How much RAM is available in this computer?

icheyne commented 2 years ago

No events visible in Event Viewer. 16GB RAM

JanVaclavek commented 2 years ago

I have the same problem

Juvenilesalman commented 2 years ago

sparrow.zip Here is my Sparrow log file. When I tried to start Sparrow on my Windows 11, I got a dialogue box with the error message above. Sparrow will not start. Appreciate you looking into this.

Juvenilesalman commented 2 years ago

FYI - I am using Start9's Embassy and the connection is through their electrs.

craigraw commented 2 years ago

@Juvenilesalman unfortunately I haven't been able to find the culprit in the log file. What were you doing when Sparrow crashed?

Also, can you look in C:\Users\xxxxx\AppData\Local\Sparrow to see if there is a heap dump there? This will be a file called something like java_xxx.hprof

Juvenilesalman commented 2 years ago

I wasn't doing anything in particular. I've tried opening Sparrow after restarting the CPU and get the same error notice in the dialog box.

There are no files with .hprof suffix in the sprrow local folder (which I did find). There are lots of java files which I'm assuming is normal and not what you're looking for, and also 3 files within a "java.prefs" subfolder (ONLY: ADDITIONAL LICENCE INFO;, ASSEMBLY EXCEPTIONS; and LICENCE). Let me know if you want me to upload any of those.

Any other suggestions or questions?

icheyne commented 2 years ago

I installed the latest version. I got the same Child Process error message but this time I got a Failed to launch JVM error just before.

No hprof file.

I also demonstrate that Sparrow won't connect to my Core wallet.

Here is a screen recording: https://user-images.githubusercontent.com/389366/198741021-037c734c-e896-4929-995c-d0c7e5c54dc3.mp4

craigraw commented 2 years ago

@icheyne are you able to try running from source? I suspect the cause of this problem might be printed to the console. It's a little technical to do so, but nothing too serious.

Here's how I do it:

  1. Install Git for Windows
  2. Run Git Bash to get a command line prompt
  3. Install SDKman with curl -s "https://get.sdkman.io" | bash
  4. Install Java with sdk install java 18.0.1-tem
  5. Get the Sparrow source with git clone --recursive https://github.com/sparrowwallet/sparrow.git
  6. Type cd sparrow
  7. Run Sparrow with ./sparrow

You will be able to observe any errors that occur in the Git Bash window where you started Sparrow. Hopefully we can learn more about what's causing this!

icheyne commented 2 years ago

I tried but SDKman wouldn't install as zip isn't installed in Git Bash on Windows. Fixing that looked ridiculously complicated on Stack Overflow...

craigraw commented 2 years ago

Ah yes, sorry about.

These instructions (see first answer) look a bit complicated but really it's just downloading two archives, extracting them and placing the requisite zip.exe and bzip2.dll files into C:\Program Files\Git\mingw64\bin: https://stackoverflow.com/questions/38782928/how-to-add-man-and-zip-to-git-bash-installation-on-windows

icheyne commented 2 years ago

Thanks Craig. I tried again, but got a Gradle error:

$ ./sparrow
Starting a Gradle Daemon (subsequent builds will be faster)
> Task :buildSrc:compileJava FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':buildSrc:compileJava'.
> Could not find tools.jar. Please check that C:\Program Files\Java\jre1.8.0_351 contains a valid JDK installation.
craigraw commented 2 years ago

Try closing that Git Bash window and trying again in a new one. SDKman requires a fresh bash login on installation.

icheyne commented 2 years ago

It worked! Thank you. Sparrow started up but this version didn't crash.

https://user-images.githubusercontent.com/389366/198874047-8a3f1dd0-94fc-4e71-9dfb-fc931e5d0c7b.mp4

craigraw commented 2 years ago

That's great, although it doesn't explain the original issue.

Instead of running directly from source with ./sparrow, can you try building the Sparrow binary? To do this, from the same location, run ./gradlew jpackage. This will take a few minutes to complete, but when done you will have a compiled Sparrow binary which you can run with ./build/jpackage/Sparrow/Sparrow.exe

It would be good to see if that is also working.

icheyne commented 2 years ago

I built the package as you suggested. It failed initially, but I installed wixtoolset as suggested and then it finished.

I ran the package with ./build/jpackage/Sparrow/Sparrow.exe and the JVM failed to launch.

outputfile.txt

https://user-images.githubusercontent.com/389366/198903715-33972b59-cc78-4891-b973-7ab55fe93666.mp4

craigraw commented 2 years ago

Thanks, the error report is finally indicating the cause of the issue. It appears that another app has installed a different JRE and turned on the Assistive Technology settings. Luckily, it is possible to turn these off.

Try running Sparrow with

_JAVA_OPTIONS="-Djavax.accessibility.assistive_technologies -Djavax.accessibility.screen_magnifier_present=false" ./build/jpackage/Sparrow/Sparrow.exe

from the same folder as before in Git Bash.

icheyne commented 2 years ago

That worked! Thank you for your patience. πŸ˜‡Is this something you can handle on your side? Also, I can't connect to Core wallet, but that is probably a separate issue. outputfile2.txt

craigraw commented 2 years ago

Great - real progress. I'm going to ask for one more step - I've changed the build in 73d9cd2e to disable assistive technologies for Windows. Could you test it by rebuilding your binary? To do so, from the same folder in Git Bash, run

git pull --recurse-submodules
./gradlew jpackage
./build/jpackage/Sparrow/Sparrow.exe

To solve the connecting to Core issue, see #724.

icheyne commented 2 years ago

That worked too. :-) Here's the output. output3.txt

I was able to connect to Core after I deleted the wallet, but then it disconnected afterwards. I'll try again once I have an official build and then I'll let you know if it's still an issue.

It was great to finally see Sparrow in action.

Juvenilesalman commented 2 years ago

I wasn't doing anything in particular. I've tried opening Sparrow after restarting the CPU and get the same error notice in the dialog box.

There are no files with .hprof suffix in the sprrow local folder (which I did find). There are lots of java files which I'm assuming is normal and not what you're looking for, and also 3 files within a "java.prefs" subfolder (ONLY: ADDITIONAL LICENCE INFO;, ASSEMBLY EXCEPTIONS; and LICENCE). Let me know if you want me to upload any of those.

Any other suggestions or questions?

iS THERE ANYTHING i CAN DO HERE? i DO YUSE ASSISTIVE TECH ON MY COMPUTER. iS THAT THE ISSUE?

icheyne commented 2 years ago

@Juvenilesalman Craig knows what the problem is now.

craigraw commented 2 years ago

@Juvenilesalman if you would like to try an unofficial build, I have just created one here: https://github.com/craigraw/beta/releases/tag/1.7.0-disable-assistive

icheyne commented 2 years ago

This beta works for me, except for connecting to Core. I shut down both Bitcoin Core and Sparrow, deleted the sparrow folder in the Bitcoin Core wallets folder and restarted Bitcoin Core and then Sparrow. The main app failed to connect to core, but the test function was able to connect. See the video, but you'll have to maximise to see my mouse at the bottom of the screen

https://user-images.githubusercontent.com/389366/199238876-05e84d6f-f614-4ac4-9c52-aa6836f33ac1.mp4

craigraw commented 2 years ago

@icheyne unfortunately Taproot wallets are not yet supported on Bitcoin Core due to an upstream Rust library being very slow in updating to descriptor wallets.

That said, there is not much use in running a Taproot wallet at present (outside of experimentation).

icheyne commented 2 years ago

Thanks for clarifying. I'm a Bitcoin noob, so assumed I should go for the latest version. Maybe best to show a warning message?

icheyne commented 2 years ago

I created a segwit wallet according to the quickstart guide and it seems to be working perfectly. πŸ‘ Thanks!

Juvenilesalman commented 1 year ago

The new Sparrow v. 1.7.0 still will not open on my PC (Windows 11). I get an error message saying Failed to launch JVM. I have tried running the .exe and the zip file from the website, as well as from command line. Here is the local cfg file (zipped, attached) sparrow.zip .