[
https://issues.apache.org/jira/browse/CB-9278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14628781#comment-14628781
]
Omar Mefire edited comment on CB-9278 at 7/15/15 9:34 PM:
----------------------------------------------------------
This issue is due to the npmhelper.loadWithSettingsThenRestore function
(https://github.com/apache/cordova-lib/blob/master/cordova-lib/src/util/npm-helper.js#L34)
initializing global values (used across multiple function calls) and
javascript/node.js being reentrant.
There is a kind of 'race condition' which arises when we try and restore
multiple platforms.
was (Author: omefire):
This issue is due to the npmhelper.loadWithSettingsThenRestore function
(https://github.com/apache/cordova-lib/blob/master/cordova-lib/src/util/npm-helper.js#L34)
initializing values that are used across multiple function calls and
javascript/node.js being reentrant.
When restoring a single platform of the form <platform>@<version>(e.g:
[email protected]), we make a call to lazy_load.npm_cache_add(), which loads some
settings using npm.load, runs the callback provided to npm_cache_add and then
restores npm.load settings.
> Restoring multiple platforms fails
> ----------------------------------
>
> Key: CB-9278
> URL: https://issues.apache.org/jira/browse/CB-9278
> Project: Apache Cordova
> Issue Type: Bug
> Components: CordovaLib
> Affects Versions: Master
> Environment: OS X
> Reporter: Dmitry Blotsky
> Assignee: Omar Mefire
> Labels: cordova-lib, platform, restore, save
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> Steps to reproduce:
> 1. Create a blank app: {{cordova create test com.app.test test}}
> 2. Add and save a platform: {{cordova platform add --save ios}}
> 3. Add and save another platform: {{cordova platform add --save android}}
> 4. Remove the platforms: {{cordova platform remove android ios}}
> 5. Try to restore platforms automatically: {{cordova prepare}}
> Expected: both platforms installed and prepared
> Actual:
> {noformat}
> Error: Trying to initialize npm when settings have not been restored from a
> previous initialization.
> {noformat}
> Running {{cordova prepare}} again fixes the issue.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]