subugoe / metacheck

Automatically check metadata compliance for hybrid open access (OA).
http://subugoe.github.io/metacheck/
GNU Affero General Public License v3.0
8 stars 1 forks source link

async broken on azure #290

Closed maxheld83 closed 3 years ago

maxheld83 commented 3 years ago

not sure what's up with this

2021-09-14T05:51:19.653655719Z: [ERROR]  Unhandled promise error: object 'mcres' not found

this has also happened locally, but only intermittently.

Maybe some globals headache.

maxheld83 commented 3 years ago

weirdly, this remains even when futures os disabled ... but promise still suggests this is about async

maxheld83 commented 3 years ago

the above is actually not the error message we need to worry about here; that was caused by errand rcrossref auth #289

maxheld83 commented 3 years ago

The problem is, instead:

objc[45185]: +[__NSPlaceholderDate initialize] may have been in progress in another thread when fork() was called.
objc[45185]: +[__NSPlaceholderDate initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.
Warning in mccollect(jobs = jobs, wait = TRUE) :
  1 parallel job did not deliver a result
Unhandled promise error: Failed to retrieve the result of MulticoreFuture (<none>) from the forked worker (on localhost; PID 45185). Post-mortem diagnostic: No process exists with this PID, i.e. the forked localhost worker is no longer alive. Detected a non-exportable reference (‘externalptr’) in one of the globals (<unknown>) used in the future expression
Unhandled promise error: Failed to retrieve the result of MulticoreFuture (<none>) from the forked worker (on localhost; PID 45185). Post-mortem diagnostic: No process exists with this PID, i.e. the forked localhost worker is no longer alive. Detected a non-exportable reference (‘externalptr’) in one of the globals (<unknown>) used in the future expression
maxheld83 commented 3 years ago

when using multisession, you get a bit further and get this:

Listening on http://127.0.0.1:6345
Browsing http://127.0.0.1:6345
                                                                                                                                                                    Using Mailjet password from system keyring.
This message is displayed once per session.
The email message was sent successfully.
                                                                                                                                                                                                                                                                                                                                        Quitting from lines 26-27 (skeleton.Rmd) 
Unhandled promise error: object 'memoised_is_doi_found' not found
Unhandled promise error: object 'memoised_is_doi_found' not found
Quitting from lines 24-25 (skeleton.Rmd) 
Unhandled promise error: object 'memoised_is_doi_found' not found
Unhandled promise error: object 'memoised_is_doi_found' not found
^C

This seems to be among the first (if not the) first function called which is not an exported object. Perhaps the subprocesses somehow don't get the correct environment. It's also possible that this has something to do with the memoisation.

This does not occur on the first run, but only on the n>1.