bisq icon indicating copy to clipboard operation
bisq copied to clipboard

java.lang.IllegalStateException on startup

Open yoshimo opened this issue 6 years ago • 8 comments

When i start bisq 1.1.5 i get the above error.

bisq.log.zip

yoshimo avatar Aug 10 '19 09:08 yoshimo

here is the relevant part of the log:

Aug.-10 11:48:25.107 [JavaFX Application Thread] ERROR b.c.s.CommonSetup: Stack trace:
java.lang.IllegalStateException
	at com.google.common.base.Preconditions.checkState(Preconditions.java:429)
	at org.bitcoinj.wallet.Wallet.addWalletTransaction(Wallet.java:2879)
	at org.bitcoinj.wallet.Wallet.maybeCommitTx(Wallet.java:2430)
	at bisq.core.btc.wallet.TxBroadcaster.broadcastTx(TxBroadcaster.java:110)
	at bisq.core.btc.wallet.TradeWalletService.broadcastTx(TradeWalletService.java:1050)
	at bisq.core.arbitration.DisputeManager.onDisputeResultMessage(DisputeManager.java:956)
	at bisq.core.arbitration.DisputeManager.dispatchMessage(DisputeManager.java:335)
	at bisq.core.arbitration.DisputeManager.lambda$applyMessages$14(DisputeManager.java:289)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.core.arbitration.DisputeManager.applyMessages(DisputeManager.java:285)
	at bisq.core.arbitration.DisputeManager.tryApplyMessages(DisputeManager.java:261)
	at bisq.core.arbitration.DisputeManager.lambda$new$1(DisputeManager.java:164)
	at bisq.network.p2p.P2PService.lambda$processMailboxEntry$9(P2PService.java:527)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.network.p2p.P2PService.processMailboxEntry(P2PService.java:526)
	at bisq.network.p2p.P2PService.lambda$maybeProcessAllMailboxEntries$12(P2PService.java:644)
	at java.base/java.util.concurrent.ConcurrentHashMap$ValuesView.forEach(ConcurrentHashMap.java:4791)
	at bisq.network.p2p.P2PService.maybeProcessAllMailboxEntries(P2PService.java:642)
	at bisq.network.p2p.P2PService.onUpdatedDataReceived(P2PService.java:341)
	at bisq.network.p2p.peers.getdata.RequestDataManager$2.onComplete(RequestDataManager.java:339)
	at bisq.network.p2p.peers.getdata.RequestDataHandler.onMessage(RequestDataHandler.java:291)
	at bisq.network.p2p.network.NetworkNode.lambda$onMessage$4(NetworkNode.java:344)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
	at bisq.network.p2p.network.NetworkNode.onMessage(NetworkNode.java:344)
	at bisq.network.p2p.network.Connection.lambda$onMessage$4(Connection.java:428)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.network.p2p.network.Connection.lambda$onMessage$5(Connection.java:428)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(PlatformImpl.java:418)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:417)
	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:175)
	at java.base/java.lang.Thread.run(Thread.java:844)
 

first step I assume would be to handle the error more gracefully so that we have more information if that kind of situation happens again.

freimair avatar Sep 19 '19 09:09 freimair

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Dec 18 '19 10:12 stale[bot]

Do we handle the logging better now @freimair ?

yoshimo avatar Dec 21 '19 07:12 yoshimo

Aug.-10 11:48:25.099 [JavaFX Application Thread] WARN  o.b.w.Wallet: Saw two pending transactions double spend each other 
Aug.-10 11:48:25.100 [JavaFX Application Thread] WARN  o.b.w.Wallet:   offending input is input 0 
Aug.-10 11:48:25.100 [JavaFX Application Thread] WARN  o.b.w.Wallet: 0de89a4edccd7b231560266515fee6fb9f26faed69a95add5f98495c2923b03b: 0100000001faf7e72e692144016f8989d85b7a4d63f52351cbaea87c1672c25f59a545fb2400000000fdfe0000483045022100fd33f1febaad6cd903117fb260515356e94bd16136dba82d5f2fb7cf246c1ae40220325f7d5c1ec83997d5a7e25c8923bafef2b7f6ee25f2c4d4a73892918563c97b014830450221009b380259facaf4010fb5c687aef362944e9dbcf2b4bb3ff5b530c26cc1b11cf202205b5eb36c10e857928baf367e0292cfc36fc050e8a9b9ac6b4bcae2779e39481d014c69522103036957627036bb8d9ca0f1eae67bedd0d4f6b173a2070666a5b5117b6d0a66242103cfafad7eded8d07f018af5939d6cf012a0961d80dbcd9e88f3ad3cd160f981d621023cdb6b70218b34237f848ca81c8a4b2d3ad9542cfbe5220e0ef9c81d2473d56753aeffffffff02c07a1000000000001976a91402065b04f01eb4c636f1cf3d64ec4ae214aef6a088ac20a10700000000001976a914e7cdff55ce30628765117f968eda806ae580ef7088ac00000000 
Aug.-10 11:48:25.100 [JavaFX Application Thread] WARN  o.b.w.Wallet: fd5a0d204a86c70e1c97ce529d95ed33309d865da677fa3f13bdb0470b859dfa: 0100000001faf7e72e692144016f8989d85b7a4d63f52351cbaea87c1672c25f59a545fb2400000000fdfe000048304502210082523b1c841f98a64cc8299e947b79b0e28e8d4621b3c3452a830fa1f3be1aa202201a4ac5f5fab6e12e81ef26b0402f09c94f08c6a1646794453a0f2d50be431e35014830450221009b380259facaf4010fb5c687aef362944e9dbcf2b4bb3ff5b530c26cc1b11cf202205b5eb36c10e857928baf367e0292cfc36fc050e8a9b9ac6b4bcae2779e39481d014c69522103036957627036bb8d9ca0f1eae67bedd0d4f6b173a2070666a5b5117b6d0a66242103cfafad7eded8d07f018af5939d6cf012a0961d80dbcd9e88f3ad3cd160f981d621023cdb6b70218b34237f848ca81c8a4b2d3ad9542cfbe5220e0ef9c81d2473d56753aeffffffff02c07a1000000000001976a91402065b04f01eb4c636f1cf3d64ec4ae214aef6a088ac20a10700000000001976a914e7cdff55ce30628765117f968eda806ae580ef7088ac00000000 
Aug.-10 11:48:25.104 [JavaFX Application Thread] INFO  o.b.w.Wallet: ->dead: 0de89a4edccd7b231560266515fee6fb9f26faed69a95add5f98495c2923b03b 
Aug.-10 11:48:25.105 [JavaFX Application Thread] INFO  b.c.a.DisputeManager: Send AckMessage for DisputeCommunicationMessage to peer g72ouph23eznvpuz.onion:9999. tradeId=15758-532a94d7-7034-4c28-a05a-4e6d1ee5e560-113, uid=3db365f8-2798-4995-8daf-6a4168d334ce 
Aug.-10 11:48:25.106 [JavaFX Application Thread] WARN  b.n.p.P2PService: We don't have the peer in our persisted peers so we don't know his capabilities. We decide to not sent the msg. peersNodeAddress=g72ouph23eznvpuz.onion:9999 
Aug.-10 11:48:25.106 [JavaFX Application Thread] ERROR b.c.a.DisputeManager: AckMessage for DisputeCommunicationMessage failed. Peer g72ouph23eznvpuz.onion:9999. tradeId=15758-532a94d7-7034-4c28-a05a-4e6d1ee5e560-113, uid=3db365f8-2798-4995-8daf-6a4168d334ce, errorMessage=We did not send the EncryptedMailboxMessage because the peer does not support the capability. 
Aug.-10 11:48:25.106 [JavaFX Application Thread] ERROR b.c.s.CommonSetup: Uncaught Exception from thread JavaFX Application Thread 
Aug.-10 11:48:25.106 [JavaFX Application Thread] ERROR b.c.s.CommonSetup: throwableMessage= null 
Aug.-10 11:48:25.106 [JavaFX Application Thread] ERROR b.c.s.CommonSetup: throwableClass= class java.lang.IllegalStateException 
Aug.-10 11:48:25.107 [JavaFX Application Thread] ERROR b.c.s.CommonSetup: Stack trace:
java.lang.IllegalStateException
	at com.google.common.base.Preconditions.checkState(Preconditions.java:429)
	at org.bitcoinj.wallet.Wallet.addWalletTransaction(Wallet.java:2879)
	at org.bitcoinj.wallet.Wallet.maybeCommitTx(Wallet.java:2430)
	at bisq.core.btc.wallet.TxBroadcaster.broadcastTx(TxBroadcaster.java:110)
	at bisq.core.btc.wallet.TradeWalletService.broadcastTx(TradeWalletService.java:1050)
	at bisq.core.arbitration.DisputeManager.onDisputeResultMessage(DisputeManager.java:956)
	at bisq.core.arbitration.DisputeManager.dispatchMessage(DisputeManager.java:335)

The problem starts already before. It is some double spending warning.

ripcurlx avatar Feb 20 '20 16:02 ripcurlx

It was in that code part:

 case DEAD:  // double-spend in alt chain
            checkState(dead.put(tx.getHash(), tx) == null);
            break;

Seems a double spent tx got added twice to the wallet, which should not be possible.

chimp1984 avatar Aug 13 '20 00:08 chimp1984

Encountered this too, and this exactly what happened to me (double spend).

darosior avatar Nov 24 '20 11:11 darosior

@darosior We release to day 1.5.0. Wait until its out then update, make a backup and then do a spv resync with 1.5.0. Never downgrade back to an older version!

chimp1984 avatar Nov 24 '20 12:11 chimp1984

huh? I didn't downgrade, but yeah will check if 1.5.0 fixes this (unlikely as the wallet seems to be in a weird state after the double spend).

darosior avatar Nov 24 '20 13:11 darosior