Hey @Ryan Hill ! Thanks for your message.
I'll hunt for the article, but it was in a Microsoft forum or a StackOverflow post, so it definitely might not have been reliable.
I need to use symlinks because the software package that I'm trying to deploy (etherpad-lite) is coded to use symlinks. To be honest, I don't know why the developers used them, but it's a Node.JS project and it seems to be a common enough occurrence with Linux development? I do know that etherpad-lite uses npm
at runtime to install plugins, so perhaps that's the reason? In any case, I personally do not care if the symlinks are "baked" and all of the files duplicated.
I've gotten a bit further since my last post. I didn't realize that the above error messages where from the workflow on Github's side. I fixed those issues and the deployment succeeds. The symlinks were not copied, as expected.
The application code starts. In a web browser, it returns HTTP 500.1001 error: iisnode was unable to establish named pipe connection to the node.exe process. And that's all that I can learn from the Log Streams via the Azure web portal (diagnostic logs are turned on). I downloaded the data dump via https://<app-name>.scm.azurewebsites.net/api/dump and found the application logs:
[36m[2021-02-17 20:38:22.572] [DEBUG] console - [39mRunning on Node v12.13.0 (minimum required Node version: 10.17.0)
[32m[2021-02-17 20:38:22.759] [INFO] console - [39mAll relative paths will be interpreted relative to the identified Etherpad base dir: C:\home\site\wwwroot
[32m[2021-02-17 20:38:22.759] [INFO] console - [39mRandom string used for versioning assets: b1e64664
[36m[2021-02-17 20:38:22.775] [DEBUG] AbsolutePaths - [39mRelative path "settings.json" can be rewritten to "C:\home\site\wwwroot\settings.json"
[36m[2021-02-17 20:38:22.791] [DEBUG] AbsolutePaths - [39mRelative path "credentials.json" can be rewritten to "C:\home\site\wwwroot\credentials.json"
[32m[2021-02-17 20:38:22.827] [INFO] console - [39msettings loaded from: C:\home\site\wwwroot\settings.json
[32m[2021-02-17 20:38:22.838] [INFO] console - [39mNo credentials file found in C:\home\site\wwwroot\credentials.json. Ignoring.
[32m[2021-02-17 20:38:22.838] [INFO] console - [39mUsing skin "colibris" in dir: C:\home\site\wwwroot\src\static\skins\colibris
[32m[2021-02-17 20:38:22.853] [INFO] console - [39mSession key loaded from: C:\home\site\wwwroot\SESSIONKEY.txt
[31m[2021-02-17 20:38:37.541] [ERROR] console - [39m(node:14704) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
[32m[2021-02-17 20:38:39.855] [INFO] runNpm - [39mnpm --version: 6.14.11
At this point those logs end without any errors reported (other than the Buffer() ERROR, but this happens on the dev machines too and shouldn't be fatal).
The developer's thoughts:
Are you sure that it stops? The line in the log that says "runNpm - npm --version: 6.14.11" is printed just as Etherpad runs npm to discover installed plugins. The npm CLI is slow, so maybe it's just taking a while? It should take less than 60s to return.
If it is indeed stopping but the logs don't show anything, I wonder if it's a Windows-specific log buffering issue. Maybe the process is dying and Windows isn't flushing buffered writes so you can't see the printed error message.
You can find this conversation and the Github debugging here: https://github.com/ether/etherpad-lite/issues/4800
What do you think? Could there be a logging issue? Is there a better place to get the logs from? I'm not surprised that it's crashing because I expect that there are application configuration issues, but the silent failure makes me think that there's a larger issue to correct.