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

Emulators are not correctly terminated when firebase emulators:exec subprocess is killed #2477

Closed
yuchenshi opened this issue Jul 21, 2020 · 1 comment · Fixed by #2482
Closed
Assignees

Comments

@yuchenshi
Copy link
Member

[REQUIRED] Environment info

firebase-tools: v8.6.0

Platform: OS X

[REQUIRED] Test case

No project needed, for example, the follow steps can be run in cd /tmp.

[REQUIRED] Steps to reproduce

  1. Run firebase emulators:exec --only firestore 'cat'
  2. Wait for the line Running script: cat
  3. Kill cat with Ctrl-C.
  4. pgrep -lf java -- see whether Firestore Emulator is still running

[REQUIRED] Expected behavior

Firestore Emulator should be properly shutdown and its process should not live on any more. This used to be the case for earlier CLI versions.

[REQUIRED] Actual behavior

Firestore Emulator is still running. If one were to run the steps above again, this time it will fail because the Firestore emulator port is taken by the remaining process.

Logs below:

[2020-07-21T18:15:46.016Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[2020-07-21T18:15:46.018Z] > authorizing via signed-in user
⚠  Could not find config (firebase.json) so using defaults. 
i  emulators: Starting emulators: firestore {"metadata":{"emulator":{"name":"hub"},"message":"Starting emulators: firestore"}}
⚠  firestore: Did not find a Cloud Firestore rules file specified in a firebase.json config file. {"metadata":{"emulator":{"name":"firestore"},"message":"Did not find a Cloud Firestore rules file specified in a firebase.json config file."}}
⚠  firestore: The emulator will default to allowing all reads and writes. Learn more about this option: https://firebase.google.com/docs/emulator-suite/install_and_configure#security_rules_configuration. {"metadata":{"emulator":{"name":"firestore"},"message":"The emulator will default to allowing all reads and writes. Learn more about this option: https://firebase.google.com/docs/emulator-suite/install_and_configure#security_rules_configuration."}}
[2020-07-21T18:15:46.035Z] Ignoring unsupported arg: projectId {"metadata":{"emulator":{"name":"firestore"},"message":"Ignoring unsupported arg: projectId"}}
[2020-07-21T18:15:46.036Z] Ignoring unsupported arg: auto_download {"metadata":{"emulator":{"name":"firestore"},"message":"Ignoring unsupported arg: auto_download"}}
[2020-07-21T18:15:46.036Z] Starting Firestore Emulator with command {"binary":"java","args":["-Duser.language=en","-jar","/Users/yuchenshi/.cache/firebase/emulators/cloud-firestore-emulator-v1.11.5.jar","--host","localhost","--port",8080],"optionalArgs":["port","webchannel_port","host","rules","functions_emulator","seed_from_export"],"joinArgs":false} {"metadata":{"emulator":{"name":"firestore"},"message":"Starting Firestore Emulator with command {\"binary\":\"java\",\"args\":[\"-Duser.language=en\",\"-jar\",\"/Users/yuchenshi/.cache/firebase/emulators/cloud-firestore-emulator-v1.11.5.jar\",\"--host\",\"localhost\",\"--port\",8080],\"optionalArgs\":[\"port\",\"webchannel_port\",\"host\",\"rules\",\"functions_emulator\",\"seed_from_export\"],\"joinArgs\":false}"}}
i  firestore: Firestore Emulator logging to firestore-debug.log {"metadata":{"emulator":{"name":"firestore"},"message":"Firestore Emulator logging to \u001b[1mfirestore-debug.log\u001b[22m"}}
[2020-07-21T18:15:47.406Z] API endpoint: http://localhost {"metadata":{"emulator":{"name":"firestore"},"message":"API endpoint: http://localhost"}}
[2020-07-21T18:15:47.406Z] :8080
If you are using a library that supports the FIRESTORE_EMULATOR_HOST environment variable, run:

   export FIRESTORE_EMULATOR_HOST=localhost:8080

Dev App Server is now running.

 {"metadata":{"emulator":{"name":"firestore"},"message":":8080\nIf you are using a library that supports the FIRESTORE_EMULATOR_HOST environment variable, run:\n\n   export FIRESTORE_EMULATOR_HOST=localhost:8080\n\nDev App Server is now running.\n\n"}}
i  Running script: cat 
[2020-07-21T18:15:47.596Z] Running cat with environment {...}

No additional logs are printed out after Ctrl-C.

@yuchenshi
Copy link
Member Author

Also, I think #2415 may be the cause. Haven't looked into it though.

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