-
-
Notifications
You must be signed in to change notification settings - Fork 60
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
Getting a sync issue #142
Comments
Which Qiqqa version are you running? Looked at the master branch code and can't immediately tell what might be wrong there, so we may have to go and dig a bit. I'm very busy with other stuff that's AFK (Away From Keyboard), so turn-around time is slow. 😢 Two things to do: 1: can you go to the sync directory of this library and, if you don't mind sharing metadata of your library, package the 2: archive/backup both your local library and dropbox library sync directory and then delete the Be warned: this is a dangerous action, so backup that entire DropBox library state AND your local library directory in Qiqqa library base directory first! |
😢 Hit the wrong button there. Re-opened immediately. sorry. |
Note to self = @GerHobbelt about SQLite on Dropbox and other share systemsAs I read some ago about the potential problems of having an SQlite DB sitting in a DropBox, GoogleDrive or other cloud share software system, this issue brought that back to front of mind. Cannot find the original pages which put this notion in my mind, but did find this: http://sqlite.1065341.n5.nabble.com/Sqlite-Dropbox-td95173.html @GerHobbelt: note the first and second replay in that forum page in particular. Current Qiqqa technology *is using a live SQLite DB on the cloud share in the form of that .s3db file, which is updated using SQLite queries, hence cross-network atomicity is still a potential cause of DB corruption, which MAY occur when two or more machines happen to (auto?)sync at the same time. TODO: irrespective of this issue's outcome, move Qiqqa onto a read-copy/edit/write-copy mechanism so that there is no live SQLite DB on the cloud drive, only a direct file copy of the latter. Also, but info value estimate is low right now: http://sqlite.1065341.n5.nabble.com/SQLite-database-on-Dropbox-Google-Drive-MS-SkyDrive-Ubuntu-One-or-SAMBA-share-td69695.html |
Hey @GerHobbelt, sorry for the delay. Research took over my life recently. I sent an email with my s3db file. Still having issues with it... |
@antnazNaz : got your s3db file, injected that one in my test collective, but haven't been able to reproduce that exact crash yet. 😢 I did uncover a few other wrongful bits in the code, but I'll have to try a few other things to see if I can make my Qiqqa behave like yours. |
Copypasta email to @antnazNaz: fixed most glaring mobile typos: Hi, it's getting way too late over here, but I suddenly can reproduce your issue just seconds ago: somehow it happens on the second sync, ie first I create a test library directory for qiqqa to discover on app start, then wait an aeon for the sync management dialog to show up via Show Sync Details, then hit Sync button to have Qiqqa copy the 4K+ remote entries from the S3DB into the test lib, no problem. Wrote this down as it may be a week before i will see my dev machine at home again and I discovered several other issues along the way, so having your s3db and this issue report is again helping to improve the software robustness. When there's further process, I'll signal via the issue tracker. Thanks and cheerio, |
On the master dev vox:
|
Turned out the UPDATE blob query was completely b0rked in the code. 😭 🤔 That must have been done a long time ago, maybe when I manually synced the WebLibraryDB and LibraryDB source files and maybe screwed up? 🤔 Hm...... |
…ext to an already existing S3DB file, delete it. We explicitly delete it to the RecycleBin so the user MAY recover the database file on the off-chance that this was the wrong choice. - fix jimmejardine#144 :: Do not try to create a Qiqqa.library DB when the directory already has an S3DB database file - some work done to find out how jimmejardine#142 came about. - `WebLibraryDetails_WorkingWebLibraries_All`: make sure all 'Guest' libraries are added to the sync set: under very particular circumstances you CAN have multiple guest libraries, e.g. when manually recovering multiple Qiqqa libraries you extracted from your backups of previous qiqqa runs/releases. - performance: speed up the sync metadata info collect action by NOT calculating the precise storage size of each library as that entails a HUGE I/O load as each library document's file system metadata would be queried for its filesize -- which is only used in the UI in an overview table and is deemed non-essential right now.
Completed Packaging Qiqqa version 82.0.7265.2217 into \qiqqa\Qiqqa.Build\Packages\v82 - 20191223-011748 ==> @antnazNaz :: there's a new v82 beta installer (v82pre7) available at https://github.com/GerHobbelt/qiqqa-open-source/releases/tag/v82.0.7265.2217 to try out. |
great work! Fix confirmed. |
Used to sync (intranet library) fine via dropbox until something happened and now getting the same error on both workstations.
20191205180115:code = Error (1), message = System.Data.SQLite.SQLiteException (0x800007BF): SQL logic error
near "WHERE": syntax error
at System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain)
at System.Data.SQLite.SQLiteCommand.BuildNextCommand()
at System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at Qiqqa.DocumentLibrary.IntranetLibraryStuff.IntranetLibraryDB.PutBlob(String filename, Byte[] data)
at Qiqqa.Synchronisation.MetadataSync.SynchronisationExecutor_Intranet.DoUpload(Library library, SynchronisationState ss)
at Qiqqa.Synchronisation.MetadataSync.SynchronisationExecutor.DoUploads(Library library, Boolean restricted_metadata_sync, Dictionary
2 historical_sync_file, SynchronisationAction synchronisation_action) at Qiqqa.Synchronisation.MetadataSync.SynchronisationExecutor.Sync(Library library, Boolean restricted_metadata_sync, Boolean is_readonly, Dictionary
2 historical_sync_file, SynchronisationAction synchronisation_action)at Qiqqa.Synchronisation.BusinessLogic.LibrarySyncManager.SynchronizeMetadata_INTERNAL_BACKGROUND(Library library, Boolean restricted_metadata_sync, Boolean is_readonly)
The text was updated successfully, but these errors were encountered: