Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Another mapdb/interrupt issue (in Peer) #69

Closed
catbref opened this issue Nov 30, 2017 · 3 comments
Closed

Another mapdb/interrupt issue (in Peer) #69

catbref opened this issue Nov 30, 2017 · 3 comments
Labels
bug can reproduce fix working? Waiting for reports that fix works mapdb

Comments

@catbref
Copy link
Collaborator

catbref commented Nov 30, 2017

2017-10-27 18:03:46 INFO  Start:92 - Starting Qora / version: 0.26.1 / build date: 2017-09-08 / ...
2017-10-27 18:18:37 INFO  Settings:351 - Peers loaded from Internet : 4
2017-10-27 18:59:08 INFO  Settings:351 - Peers loaded from Internet : 4
2017-10-27 19:40:43 INFO  Settings:351 - Peers loaded from Internet : 4
2017-10-27 20:21:58 INFO  Settings:351 - Peers loaded from Internet : 4
2017-10-27 20:25:40 ERROR ArbitraryTransaction:236 - java.nio.channels.ClosedByInterruptException
java.io.IOError: java.nio.channels.ClosedByInterruptException
	at org.mapdb.Volume$FileChannelVol.getLong(Volume.java:977)
	at org.mapdb.StoreWAL.getLinkedRecordsFromLog(StoreWAL.java:880)
	at org.mapdb.StoreWAL.update(StoreWAL.java:380)
	at org.mapdb.Caches$HashTable.update(Caches.java:270)
	at org.mapdb.EngineWrapper.update(EngineWrapper.java:63)
	at org.mapdb.BTreeMap.put2(BTreeMap.java:707)
	at org.mapdb.BTreeMap.put(BTreeMap.java:643)
	at database.DBMap.set(DBMap.java:141)
	at qora.web.NameStorageMap.add(NameStorageMap.java:61)
	at utils.StorageUtils.addTxChangesToStorage(StorageUtils.java:243)
	at utils.StorageUtils.processUpdate(StorageUtils.java:147)
	at qora.transaction.ArbitraryTransaction.process(ArbitraryTransaction.java:224)
	at qora.block.Block.isValid(Block.java:694)
	at qora.block.Block.isValid(Block.java:571)
	at qora.Synchronizer.process(Synchronizer.java:344)
	at controller.Controller.onMessage(Controller.java:880)
	at network.Network.onMessage(Network.java:269)
	at network.Peer.run(Peer.java:178)
Caused by: java.nio.channels.ClosedByInterruptException
	at java.nio.channels.spi.AbstractInterruptibleChannel.end(Unknown Source)
	at sun.nio.ch.FileChannelImpl.readInternal(Unknown Source)
	at sun.nio.ch.FileChannelImpl.read(Unknown Source)
	at org.mapdb.Volume$FileChannelVol.readFully(Volume.java:946)
	at org.mapdb.Volume$FileChannelVol.getLong(Volume.java:974)
	... 17 more
2017-10-27 20:25:40 ERROR ArbitraryTransaction:236 - java.nio.channels.ClosedChannelException
java.io.IOError: java.nio.channels.ClosedChannelException
	at org.mapdb.Volume$FileChannelVol.getLong(Volume.java:977)
	at org.mapdb.StoreWAL.getLinkedRecordsFromLog(StoreWAL.java:880)
	at org.mapdb.StoreWAL.update(StoreWAL.java:380)
	at org.mapdb.Caches$HashTable.update(Caches.java:270)
	at org.mapdb.EngineWrapper.update(EngineWrapper.java:63)
	at org.mapdb.BTreeMap.put2(BTreeMap.java:746)
	at org.mapdb.BTreeMap.put(BTreeMap.java:643)
	at database.DBMap.set(DBMap.java:141)
	at qora.web.OrphanNameStorageMap.add(OrphanNameStorageMap.java:63)
	at utils.StorageUtils.processUpdate(StorageUtils.java:140)
	at qora.transaction.ArbitraryTransaction.process(ArbitraryTransaction.java:224)
	at qora.block.Block.isValid(Block.java:694)
	at qora.block.Block.isValid(Block.java:571)
	at qora.Synchronizer.process(Synchronizer.java:344)
	at controller.Controller.onMessage(Controller.java:880)
	at network.Network.onMessage(Network.java:269)
	at network.Peer.run(Peer.java:178)
Caused by: java.nio.channels.ClosedChannelException
	at sun.nio.ch.FileChannelImpl.ensureOpen(Unknown Source)
	at sun.nio.ch.FileChannelImpl.read(Unknown Source)
	at org.mapdb.Volume$FileChannelVol.readFully(Volume.java:946)
	at org.mapdb.Volume$FileChannelVol.getLong(Volume.java:974)
	... 16 more
2017-10-27 20:25:40 ERROR ArbitraryTransaction:236 - java.nio.channels.ClosedChannelException
java.io.IOError: java.nio.channels.ClosedChannelException
	at org.mapdb.Volume$FileChannelVol.getLong(Volume.java:977)
	at org.mapdb.StoreWAL.getLinkedRecordsFromLog(StoreWAL.java:880)
	at org.mapdb.StoreWAL.update(StoreWAL.java:380)
	at org.mapdb.Caches$HashTable.update(Caches.java:270)
	at org.mapdb.EngineWrapper.update(EngineWrapper.java:63)
	at org.mapdb.BTreeMap.put2(BTreeMap.java:746)
	at org.mapdb.BTreeMap.put(BTreeMap.java:643)
	at database.DBMap.set(DBMap.java:141)
	at qora.web.OrphanNameStorageMap.add(OrphanNameStorageMap.java:63)
	at utils.StorageUtils.processUpdate(StorageUtils.java:140)
	at qora.transaction.ArbitraryTransaction.process(ArbitraryTransaction.java:224)
	at qora.block.Block.isValid(Block.java:694)
	at qora.block.Block.isValid(Block.java:571)
	at qora.Synchronizer.process(Synchronizer.java:344)
	at controller.Controller.onMessage(Controller.java:880)
	at network.Network.onMessage(Network.java:269)
	at network.Peer.run(Peer.java:178)
Caused by: java.nio.channels.ClosedChannelException
	at sun.nio.ch.FileChannelImpl.ensureOpen(Unknown Source)
	at sun.nio.ch.FileChannelImpl.read(Unknown Source)
	at org.mapdb.Volume$FileChannelVol.readFully(Volume.java:946)
	at org.mapdb.Volume$FileChannelVol.getLong(Volume.java:974)
	... 16 more
2017-10-27 20:32:26 INFO  Settings:351 - Peers loaded from Internet : 4
@catbref
Copy link
Collaborator Author

catbref commented Mar 8, 2018

Looks like the call to Network.onMessage() does a mapdb call while Peer.run() is still has interrupted flag set. The fix is to wrap the onMessage() call in a new thread.

@catbref catbref changed the title Another mapdb/interrupt issue Another mapdb/interrupt issue (in Peer) Mar 8, 2018
catbref added a commit that referenced this issue Mar 9, 2018
Fixes for issue #69 and issue #91 plus minor networking
@catbref catbref added the fix working? Waiting for reports that fix works label Mar 9, 2018
@catbref
Copy link
Collaborator Author

catbref commented Mar 9, 2018

Should be fixed in newly released v0.26.7 - please confirm?

@catbref
Copy link
Collaborator Author

catbref commented Apr 18, 2018

Closing due to no new reports and substantial code change in Peer class

@catbref catbref closed this as completed Apr 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug can reproduce fix working? Waiting for reports that fix works mapdb
Projects
None yet
Development

No branches or pull requests

1 participant