Code studios View not yet available, waiting ...
Hello,
I'm trying to use Dataiku's new Code Studios feature, managed to do create template, get deployment ready. But on DSS Code Studios View tab I can only see: "View not yet available, waiting ..."
The logs show that my DSS instance is able to contact the code studios kubernetes pod. So I don't understand why.
Attached are the logs from the Code Studios tab from DSS UI.
And here are relevant logs from the Dataiku DSS pod logs:
{"timestamp" : "2022/11/14-09:21:01.966Z", "logger": "dip.expose.endpoint.collector", "level" : "INFO", "thread": "Thread-3738", "context": "", "message" : "Register a backend {"expositionType":"port_forward","id":"dataiku-kub-kub-rwaisz7-arfjili3-775d58d88f-xr9c7","scheme":"http","host":"127.0.0.1","port":49044,"availability":"LOCAL"}"} {"timestamp" : "2022/11/14-09:21:01.966Z", "logger": "dip.webapp.expose", "level" : "WARN", "thread": "Thread-3738", "context": "", "message" : "Port forwarding failed"} java.io.FileNotFoundException: File '/home/dataiku/dss/run/nginx/nginx.pid' does not exist at org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:299) at org.apache.commons.io.FileUtils.readFileToString(FileUtils.java:1711) at org.apache.commons.io.FileUtils.readFileToString(FileUtils.java:1734) at com.dataiku.dip.utils.DKUFileUtils.readFileToStringUTF8(DKUFileUtils.java:85) at com.dataiku.dip.webapps.backend.NginxUtils.hupNginx(NginxUtils.java:25) at com.dataiku.dip.codestudio.runtime.CodeStudioRuntime$CodeStudioEndpointsCollector.endpointsChanged(CodeStudioRuntime.java:237) at com.dataiku.dip.exposition.AbstractExposedEndpointCollector.registerPort(AbstractExposedEndpointCollector.java:30) at com.dataiku.dip.exposition.PortForwardExposition$PortForwardExpositionHandler$PodsPortForwarderThread.forward(PortForwardExposition.java:199) at com.dataiku.dip.exposition.PortForwardExposition$PortForwardExpositionHandler$PodPortForwarderThread.run(PortForwardExposition.java:365)
P.S I don't have a lot of ports open on the DSS instance, should I open more?
Answers
-
Hi,
you have a very uncommon error:
java.io.FileNotFoundException: File '/home/dataiku/dss/run/nginx/nginx.pid' does not exist
That file must be existing, unless you tampered heavily with the DSS install. Its absence, or the restrictive permissions on it, prevent DSS from updating the nginx config to let the code studio become accessible through the interface. Note that this mechanism is also used for webapps, so it's likely that containerised webapps don't work either.
You need to double check the permissions in the run folder, and the user you run DSS as.
-
Permissions seem to be okay. Other nginx files are created. When is the "nginx.pid" file supposed to be created?
I tried creating it manually using the same user that launches the DSS instance. And it does go further, I get error 404 on the View tab:
-
Hi,
the file is created by the "pid" command in the nginx config file (see DATADIR/install-support/nginx.conf). If you do "./bin/dss restart nginx" in the DATADIR, then the nginx.pid should be re-created, with the pid of the master nginx process in it. If not, then your permissions or your nginx executable are to blame.
-
What about the 404 error?
-
the 404 error is to be expected if nginx hasn't effectively been able to update its config. You need to restart nginx, possible stop and restart the code studio too
-
Restarting nginx with: "bin/dss restart nginx" gives this error:
[!] /home/dataiku/dss appears to a copy from /home/dataiku/dss_installed [!] Was the install properly migrated? (with installer.sh -u ...) [!] Aborting.
-
Hi,
this error message means DSS wasn't installed in a proper way. Typically this would happen if you move the DATADIR and don't re-run the installer.sh -u -d NEWDATADIR afterwards.
You need to make a proper DSS install, or at least re-run installer.sh -u
-
It's fine, the issue was that I installed DSS to another path, then moved it to a mounted Statefulset path to avoid it being emptied during the mount process. And the paths in the nginx.conf file were then obviously wrong. Now it works well.
-
I'm running Dataiku DSS in a container, is there any way I can verify whether the installer.sh has been run on the right directory or not?