Comments (5)
At a glance, the aggregate error would suggest an issue from reading records from the underlying IPFS blockstore. My hunch is that, for whatever reason, the in-memory blockstore is being unloaded and reloaded resulting in the inability for OrbitDB to read the blocks. Deleting a record may trigger a re-read of the blocks (perhaps for re-indexing).
Can I replicate the issue from deContact? If not, I'll hopefully have some time to try and set up a test to isolate the problem.
from orbitdb.
After testing with both @silkroadnomad and the libp2p devs, we are thinking the problem is related to the stream returned by libp2p.dial() prematurely breaking. According to the libp2p devs, the a connection should be re-established but this does not seem to be the case. The workaround suggestion is to provide some kind of keep-alive to ensure two peers are reconnected if the connection prematurely ends.
from orbitdb.
I'll try to give you some more info on how to reproduce it:
- it seems not reproducible when locally adding values to the documents db and then deleting it
- it seems connected with the 'del' operation and syncs between other orbitdb instances.
- it is sort of reproducible if I have a "clean" db (Chrome)
- which was replicated before to another device
- then dropped
- new records added
- replication re-replicates from db of the second device
- then delete the manually added record (-> crash)
- Current Test-Szenario (which should reproduce it - unconfirmed yet) - between Brave and Opera
- clean db with 2 records on device A
- replicate it with another device B
- drop the db on the on device A
- add a new record on device A
- wait for replication with device B
- delete one replicated record (no problem)
- delete one new record (db crashes and needs to be dropped again)
(I repeat this procedure is at the time of writing my assumption but not 100% confirmed by another test with other browsers)
- After testing No 4 between Brave and Opera this scenario could not be reproduced. But problem is reproducable in my Chrome (maybe its just mine) doesn't make too much sense at the moment.
- Re-Test with Chrome with a fresh identity (no previous replication) resulted in a not reproducible scenario like described under No 4. -> Reproducibility for now not possible anymore
- Truying some "wild testing" again -> Result: At the moment impossible to crash the replication between 4 different browsers (Chrome, Firefox, Opera, Brave)
- Truying to use the same identity of Chrome now on the Android phone in the PWA (so both devices replicate each other)
from orbitdb.
I can't reproduce it anymore. But I guess it is hiding somewhere around the corner. But until then I'll close the issue to reduce the whole noise it makes. ;)
from orbitdb.
Just made another test with two Brave browsers (one Mac - one Linux) with a collegue and could reproduce the problem one more time in the following scenario:
- I added a record on my Brave (fresh identity with fresh and clean db)
- Collegue added a record (fresh identity with fresh and clean db)
- College replicated my db and wrote a record into my db
- I replicated his db and wrote a record into his db
- Replications ok - I deleted his record in my db -> db crash
I will try now to reproduce this with another person! At least this proofs now that my Chrome is not some sort of strangely misconfigured since I used a completely empty Brave for that.
from orbitdb.
Related Issues (20)
- Recover from [AggregateError: All promises were rejected] Error: Want for xyz aborted HOT 4
- Uncaught Error: Could not append entry: although write access is granted HOT 7
- Error: fetching raw block for CID HOT 4
- TS7016: Could not find a declaration file for module @orbitdb/core. HOT 3
- Error: No native build was found for platform=darwin arch=arm64 runtime=node abi=115 uv=1 armv=8 libc=glibc node=20.11.0 webpack=true HOT 1
- Log Entries created on remote/other Peers are not Pinned Locally HOT 5
- database record limits for acceptable lookup performance HOT 7
- Error: Want for bafyreighfb3szinnqrktnuyriifexl2bcgpisbrlbaxfs4kgqp6ocwjbmy aborted HOT 11
- Sync only to N entries. HOT 1
- Issue with GETTING_STARTED.md LevelBlockstore HOT 2
- Issue with GETTING_STARTED.md page HOT 4
- Can't open existing database HOT 6
- When put data, tell me 'PublishError.NoPeersSubscribedToTopic' error. How can i fix this? THX HOT 3
- Update config to use `allowPublishToZeroTopicPeers` HOT 2
- Altering protection to prevent changing data of other users HOT 2
- Unable to Index Documents with Custom IPFSBlockStorage (pure browser environment)
- Integration Issue with Helia: Custom Service Configuration Disables Peer Discovery in Browser Environment HOT 3
- Code Sample Issues in OrbitDB Documentation for Access Controllers HOT 2
- issue trying to get multiple nodejs peers to sync HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orbitdb.