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

Corrupted persistent state messages in console #2211

Closed
danielweck opened this issue May 16, 2024 · 4 comments · Fixed by #2296
Closed

Corrupted persistent state messages in console #2211

danielweck opened this issue May 16, 2024 · 4 comments · Fixed by #2296
Assignees

Comments

@danielweck
Copy link
Member

First launch from scratch (deleted EDRLab.ThoriumReader):

[2]   readium-desktop:main:di initStore +0ms
[2]   readium-desktop:main:store:memory  +0ms
[2]   readium-desktop:main:store:memory MEMORY INIT STORE +0ms
[2]   readium-desktop:main:store:memory N-1 STATE + PATCH != STATE +162ms
[2]   readium-desktop:main:store:memory Your state is probably corrupted +39ms
[2]   readium-desktop:main:store:memory If it is a fresh thorium installation do not worry +20ms
[2]   readium-desktop:main:store:memory If it is a migration from Thorium 1.6 to Thorium 1.7 do not worry too, migrtion process will start +36ms
[2]   readium-desktop:main:store:memory AssertionError [ERR_ASSERTION]: ?!
[2]   readium-desktop:main:store:memory     at new AssertionError (node:internal/assert/assertion_error:451:5)
[2]   readium-desktop:main:store:memory     at ok (/Users/danielweck/Code/readium-desktop/dist/main.js:3616:11)
[2]   readium-desktop:main:store:memory     at runtimeState (/Users/danielweck/Code/readium-desktop/dist/main.js:14529:74)
[2]   readium-desktop:main:store:memory     at async initStore (/Users/danielweck/Code/readium-desktop/dist/main.js:14572:44)
[2]   readium-desktop:main:store:memory     at async createStoreFromDi (/Users/danielweck/Code/readium-desktop/dist/main.js:5330:35)
[2]   readium-desktop:main:store:memory     at async start (/Users/danielweck/Code/readium-desktop/dist/main.js:16119:11)
[2]   readium-desktop:main:store:memory     at async Promise.all (index 0)
[2]   readium-desktop:main:store:memory     at async mainCommand (/Users/danielweck/Code/readium-desktop/dist/main.js:3892:5)
[2]   readium-desktop:main:store:memory     at async Object.handler (/Users/danielweck/Code/readium-desktop/dist/main.js:3979:5) +20ms
[2]   readium-desktop:main:store:memory REDUX STATE IS CORRUPTED THE TEST FAILED +59ms
[2]   readium-desktop:main:store:memory For security purpose the state is not erase +0ms
[2]   readium-desktop:main:store:memory Be carefull, an unexpected behaviour may occur +1ms
[2]   readium-desktop:main:store:memory RECOVERY FAILED none of the 4 recoveries mode worked +0ms
[2]   readium-desktop:main:store:memory RECOVERY : a state backup file is copied in /Users/danielweck/Library/Application Support/EDRLab.ThoriumReader/config-data-json-dev/state.1715876184534.json +2ms
[2]   readium-desktop:main:store:memory keep it safe, you may restore a corrupted state with it +0ms
[2]   r2:navigator#electron/main/sessions SESSION CACHE + STORAGE DATA CLEARED - [persist:readium2pubwebview] => fulfilled +0ms
[2]   r2:navigator#electron/main/sessions SESSION CACHE + STORAGE DATA CLEARED - [persist:readium2pubwebview] => fulfilled +0ms
[2]   r2:navigator#electron/main/sessions SESSION CACHE + STORAGE DATA CLEARED - [default] => fulfilled +0ms
[2]   r2:navigator#electron/main/sessions SESSION CACHE + STORAGE DATA CLEARED - [default] => fulfilled +0ms
[2]   readium-desktop:main:store:memory ####### WARNING ###### +4ms
[2]   readium-desktop:main:store:memory Thorium starts with a fresh new session +1ms
[2]   readium-desktop:main:store:memory There are no DATABASE on the filesystem +0ms
[2]   readium-desktop:main:store:memory ####### WARNING ###### +0ms
[2]   readium-desktop:main:store:memory REDUX STATE VALUE ::  undefined nil +0ms
[2]   readium-desktop:main:di store loaded +581ms
[2]   readium-desktop:main:di container store and saga binded +0ms
[2]   readium-desktop:main/start store loaded +0ms
[2]   readium-desktop:sync ### action type APP_INIT_REQUEST +0ms
[2]   readium-desktop:main/start STORE MOUNTED -> MOUNTING THE APP NOW +4ms
[2]   readium-desktop:main:saga:app Main app ready +0ms
@danielweck
Copy link
Member Author

Second launch:

[2]   readium-desktop:main:di initStore +0ms
[2]   readium-desktop:main:store:memory  +0ms
[2]   readium-desktop:main:store:memory MEMORY INIT STORE +0ms
[2]   r2:navigator#electron/main/sessions SESSION CACHE + STORAGE DATA CLEARED - [persist:readium2pubwebview] => fulfilled +0ms
[2]   r2:navigator#electron/main/sessions SESSION CACHE + STORAGE DATA CLEARED - [persist:readium2pubwebview] => fulfilled +0ms
[2]   readium-desktop:main:store:memory STATE LOADED FROM FS +187ms
[2]   readium-desktop:main:store:memory 😍😍😍😍😍😍😍😍 +1ms
[2]   readium-desktop:main:store:memory N-1 STATE + PATCH != STATE +4ms
[2]   readium-desktop:main:store:memory Your state is probably corrupted +20ms
[2]   readium-desktop:main:store:memory If it is a fresh thorium installation do not worry +0ms
[2]   readium-desktop:main:store:memory If it is a migration from Thorium 1.6 to Thorium 1.7 do not worry too, migrtion process will start +19ms
[2]   readium-desktop:main:store:memory AssertionError [ERR_ASSERTION]: ?!
[2]   readium-desktop:main:store:memory     at new AssertionError (node:internal/assert/assertion_error:451:5)
[2]   readium-desktop:main:store:memory     at ok (/Users/danielweck/Code/readium-desktop/dist/main.js:3616:11)
[2]   readium-desktop:main:store:memory     at runtimeState (/Users/danielweck/Code/readium-desktop/dist/main.js:14529:74)
[2]   readium-desktop:main:store:memory     at async initStore (/Users/danielweck/Code/readium-desktop/dist/main.js:14572:44)
[2]   readium-desktop:main:store:memory     at async createStoreFromDi (/Users/danielweck/Code/readium-desktop/dist/main.js:5330:35)
[2]   readium-desktop:main:store:memory     at async start (/Users/danielweck/Code/readium-desktop/dist/main.js:16119:11)
[2]   readium-desktop:main:store:memory     at async Promise.all (index 0)
[2]   readium-desktop:main:store:memory     at async mainCommand (/Users/danielweck/Code/readium-desktop/dist/main.js:3892:5)
[2]   readium-desktop:main:store:memory     at async Object.handler (/Users/danielweck/Code/readium-desktop/dist/main.js:3979:5) +1ms
[2]   readium-desktop:main:store:memory RECOVERY : the state is provided from potentially corrupted state.json file +1ms
[2]   readium-desktop:main:store:memory the last state.json seems good after a quick test on it ! +20ms
[2]   readium-desktop:main:store:memory state - 1 + patch is not used +3ms
[2]   readium-desktop:main:store:memory recovery state come from state.json +0ms
[2]   readium-desktop:main:store:memory REVOVERY WORKS lvl 2/4 +0ms
[2]   readium-desktop:main:store:memory RECOVERY : a state backup file is copied in /Users/danielweck/Library/Application Support/EDRLab.ThoriumReader/config-data-json-dev/state.1715876414352.json +4ms
[2]   readium-desktop:main:store:memory keep it safe, you may restore a corrupted state with it +1ms
[2]   r2:navigator#electron/main/sessions SESSION CACHE + STORAGE DATA CLEARED - [default] => fulfilled +75ms
[2]   r2:navigator#electron/main/sessions SESSION CACHE + STORAGE DATA CLEARED - [default] => fulfilled +0ms
[2]   readium-desktop:main:store:memory REDUX STATE VALUE ::  object [
[2]   'theme',       'win',
[2]   'publication', 'reader',
[2]   'session',     'i18n',
[2]   'opds',        'version',
[2]   'wizard'
[2] ] +2ms
[2]   readium-desktop:main:di store loaded +392ms
[2]   readium-desktop:main:di container store and saga binded +0ms
[2]   readium-desktop:main/start store loaded +0ms
[2]   readium-desktop:sync ### action type APP_INIT_REQUEST +0ms
[2]   readium-desktop:keyboard Keyboard shortcuts from user (true): +0ms
[2]   readium-desktop:main/start STORE MOUNTED -> MOUNTING THE APP NOW +7ms
[2]   readium-desktop:main:saga:app Main app ready +0ms

@panaC
Copy link
Member

panaC commented May 21, 2024

Third :

[2]   readium-desktop:main:di initStore +0ms
[2]   readium-desktop:main:store:memory  +0ms
[2]   readium-desktop:main:store:memory MEMORY INIT STORE +1ms
[2]   readium-desktop:main:store:memory STATE LOADED FROM FS +111ms
[2]   readium-desktop:main:store:memory 😍😍😍😍😍😍😍😍 +0ms
[2]   r2:navigator#electron/main/sessions SESSION CACHE + STORAGE DATA CLEARED - [persist:readium2pubwebview] => fulfilled +0ms
[2]   r2:navigator#electron/main/sessions SESSION CACHE + STORAGE DATA CLEARED - [persist:readium2pubwebview] => fulfilled +0ms
[2]   readium-desktop:main:store:memory hydration state is certified compliant +2ms
[2]   readium-desktop:main:store:memory RECOVERY WORKS lvl 1/4 +0ms
[2]   readium-desktop:main:store:memory REDUX STATE VALUE ::  object [
[2]   'theme',       'win',
[2]   'publication', 'reader',
[2]   'session',     'i18n',
[2]   'opds',        'version',
[2]   'wizard'
[2] ] +6ms

@panaC
Copy link
Member

panaC commented May 21, 2024

runtimeStateFilePath is note written on the second launch but on the third.

await tryCatch(() =>
fsp.writeFile(
runtimeStateFilePath,
reduxState ? JSON.stringify(reduxState) : "",
{ encoding: "utf8" },
)
, "");

On the first finally (try-catch cascade) an empty string is saved to runtimeStateFilePath instead to an empty object.

issue :

ok(typeof runtimeState === "object");

assertion check of runtimeStateFilePath but empty on the second launch

@danielweck
Copy link
Member Author

try catch finally cascades ... maybe time to refactor Thorium to EffectTS :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants