-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Recording fails #240
Comments
@bbaldino any idea why the launched Chrome wouldn't have localStorage available? |
I think there is the localStorage available, but it's probably a typo. |
Some other people have reported this, but I don't think it's something we've run into, so I don't think it's a fundamental Jibri issue, but something with the deployment? I don't know more than just googling for the chrome error. |
The chromium project reports that this is a security warning, if third-party cookies and site data is blocked. On the jitsi forum there is also a report about the same error and the author suggests the following solution:
Does this help you? |
According to the logs in the docker image, it seems the default jibri image attempts to join https://meet.jitsi/<channel_name> instead of https://meet.<our_domain>/<channel_name> which results in a certificate validation error. I guess it takes the value for the domain from the xmpp settings? The error message is a little misleading. |
|
Yes @sualko, however, it's under the section:
So, i think either the documentation should be changed to reflect that changing the PUBLIC_URL is not sufficient, since jibri will use the XMPP_DOMAIN url or the jibri image should use PUBLIC_URL to connect to the room. |
That traffic happens over the Docker internal network so I'm not sure why it's failing :-/ |
Btw can someone reproduce this? |
@saghul The connection itself is not failing, it can reach the server at meet.jitsi, but selenium gets presented the wrong certificate (in our case meet.ourdomain.de instead of meet.jitsi) and as a result correctly refuses to connect since the hostname doesn't match. As a result no window.localStorage is available. The solution would be to use the PUBLIC_URL to connect to the server. (Or disable certificate checking in selenium, which shouldn't be considered in the first place.) |
Can selenium not just use an unencrypted connection, because in my case an apache is handling tls and therefore I disabled tls. |
@sualko I am seeing the same behaviour, having deployed a more or less vanilla setup via docker-compose from master branch a few days ago, first without the Jibri component, everything works like a charm. Then, after adding Jibri I am seeing the same error as described above. Just to be sure, I also wiped the whole generated config for all components and started fresh, but same result. |
Arguably that is not a bad idea in this case. All the traffic goes over the user defined network in Docker, not the public internet. Now, I agree this is bad, but alas it's not a config issue, we need to modify Jibri to fix this. |
As far as I understand it, it is not selenium that's the issue but rather Chrome itself. Chrome won't activate WebRTC connections with https:// and so a valid certificate is required for that reason. |
It will, if we namage to accept a self-signed cert for example. We could have an nginx entry for meet.jitsi, with a self-signed cert. |
Actually, I think a self-signed already works, that's how I tested it. I'll try to fix this tomorrow by having a self-signed cert for meet.jitsi |
I pull the image which updated 14hrs ago but still having the same recording issue |
Interestingly, we were actually successfully recoding up until today. Then it just stopped working on that machine (after a reboot). Also not working on a new vanilla installation I tried on a new machine. |
What version is this (that you pulled and started failing)? |
Latest $ docker images |
Ok, here is what I've figured out: It has to do with the config file ( As for what is special in the config file, I have no idea unfortunately. I had gradually turned on authentication, HTTP redirect to HTTPS, recording, etc. I am thinking perhaps these have made something in the config file that a clean install with jibri right from the beginning is not making? sorry, it's all guesses. |
It's not fixed in the latest images. It will only work if you are using a self-signed cert. |
@bbaldino It's not a Jibri issue (yet), it has do to with the Docker setup. |
Hey @saghui, I have the same problem. I am using jitsi behind an NGINX reverse proxy and I am rather new jitisi and jibri. I would like to try to apply your solution. As I understand, jibri needs a SSL connection to the container in which the meeting takes place, since the selenium Chrome browser running inside the Jibri container does not record unless an SSL connection is enabled. Your solution would be a self signed certificate. Where do I place it? It seems this is related to this issue, am I correct? Where do I change the setting in the jibri docker image for the Chrome capabilities? |
Yes, it's that issue. There is no setting to change. We need to create a self-signed cert for the "meet.jitsi" domain and configure nginx accordingly. |
So, you mean the nginx server in the web container? Isn't there already a self signed certificat present in the ssl.conf?
|
Hi! Check your jitsi-web logs. This is mine:
For testing purpose cant be a let's encrypt CA I guess. "looks like your “server” can’t talk with Letsencrypt. |
Hi there! I've tried this self signed CA and still not working Here my jibri's log
|
No. Chrome will connect to the web server, using |
Does Recording work? I have haproxy handling the certificate, so ENABLE_LETSENCRYPT is OFF and DISABLE_HTTPS is ON also DOCKER_HOST_ADDRESS is defined
|
Yep, works for me but I'm using the web container ( the default one coming with the stack ) and that's handling https. It should work with a proxy as well but haven't tested, what errors are you getting? what containers are you running? |
My error see above, 5th message, my env settings
Am using the following containers jitsi/jibri:latest Os is Ubuntu 18, Whats your OS? |
Noticed the following error on jibri container start [cont-init.d] 10-config: executing... Couple of errors in jibri container /tmp/xorg.log
To solve 1st error connect to container and install libgl1-mesa-dri
Second one is a bug https://gitlab.freedesktop.org/xorg/xserver/issues/554 |
I'm also using Ubuntu 18.04, same stack of containers except etherpad, haven't used that yet. I think the only thing that is different is the way we handle SSL. Any chance you can give it a spin without haproxy? If you have public IP on the docker host you can try Letsencrypt. Haven't seen the missing finalize.sh script so far. |
Finally recording worked, Thank you all. This error is gone change container from latest to stable-4548 jitsi/jibri::stable-4548
@saghul Please install libgl1-mesa-dri dependencies in docker file to fix
|
Glad it worked, I hope whatever fix they have in that branch will make it to master soon :) |
Do you mean it works behind HAProxy like you described above? And if you change the etherpad base URL you probably get a 502 bad gateway when opening a shared document. Did you try it? |
Yes it worked behind haproxy
Note i have commented the ports in docker compose for jitsi-web so that i runs in port 80 and 443
Its working fine.
Share your apache config and .env |
Solution to error Cannot run program "/config/finalize.sh": error=2, No such file or directory .env create a dummy script finalize.sh
OR
|
Yeah, it looks like I had the same error, I just didn't notice because recording was working and I wasn't looking for errors. That script can be useful in case you need to push your recordings on external storage or any other post-meeting action you might need. Good catch |
Is this a fatal problem or does the startup proceed? I tested it before the release and could live stream just fine. |
Not fatal everything works fine even with these errors. |
Thanks for your reply. I had "DISABLE_HTTPS=1" in .env and this caused my problem even I don't need HTTPS. I put it back to the default (commented out). So now it works :) Only thing left is etherpad. It only works if I leave baseURL default setting in .env. And thanks to all contributors! |
@arunvc Gotcha. Any chance you can send a PR? |
Sorry, whats PR? Pull Request/Purchase Request/Public Relation |
Pull request
…On Fri, May 8, 2020, 10:57 AM Arun ***@***.***> wrote:
Not fatal everything works fine even with these errors.
@arunvc <https://github.com/arunvc> Gotcha. Any chance you can send a PR?
Sorry, whats PR? Pull Request/Purchase Request/Public Relation
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#240 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHWN3ZB3U73YXB7CLD4QUM3RQOJ45ANCNFSM4LQFBZCA>
.
|
Ok i will work on this |
* a79fc0c misc: add release script * 0f0adc8 compose: add image tag to compose files * 0177765 misc: fix config volumes to work with SELinux * eae3f5c jibri: chrome/driver 78 as a stopgap * 78df6a4 doc: delete unnecessary dot * 4426ed8 jibri: fix case when /dev/snd is not bound (jitsi#240 (comment)) * 125775a web: fix WASM MIME type * e70975e web: enable GZIP compression for more file types * 774aba5 misc: set ddefault timezone to UTC * 3c3fc19 prosody: enable speaker stats and conferene duration modules * f911df2 jvb: set JVB_TCP_MAPPED_PORT default value * 1205170 jvb: allow `TCP_HARVESTER_MAPPED_PORT` to be configured * f7796a1 prosody: add volume /prosody-plugins-custom to docker-compose * d44230e prosody: use hashed xmpp auth
Hi, Below is the error in log.0.txt 2020-08-25 07:03:12.135 FINE: [748] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.xmppdemo.tcgdigital.com/e7R-j4fM,from=jibribrewery@internal.auth.xmppdemo.tcgdigital.com/focus,id=amlicmlAYXV0aC54bXBwZGVtby50Y2dkaWdpdGFsLmNvbS9lN1ItajRmTQBXSHZFei02NDU3AF4+bunnZPBavVCP1p3dMEg=,type=set,] 2020-08-25 07:03:53.526 INFO: [759] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver Also below is the error in browser.0.txt { |
I've had this issue for months... no-one ever replies |
Hi, I used a self signed cert for meet.jitsi and check nginx log and found 403 for /xmpp-websocket url. Other paths gets 200. Getting same 'Not joined yet: Cannot read property 'isJoined' of undefined' error. Can you shade some lights? @saghul 172.29.0.1 - - [21/Dec/2020:18:16:05 +0000] "GET /xmpp-websocket?room=meet2 HTTP/1.1" 403 284 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36" |
* 7820ea5 misc: add release script * c552ddd compose: add image tag to compose files * c1c1b48 misc: fix config volumes to work with SELinux * 74b654f jibri: chrome/driver 78 as a stopgap * 07c7787 doc: delete unnecessary dot * 7fbd900 jibri: fix case when /dev/snd is not bound (jitsi/docker-jitsi-meet#240 (comment)) * f705973 web: fix WASM MIME type * c6b160b web: enable GZIP compression for more file types * 6092b60 misc: set ddefault timezone to UTC * 1e0a8dd prosody: enable speaker stats and conferene duration modules * f8aa21b jvb: set JVB_TCP_MAPPED_PORT default value * 89a3bc4 jvb: allow `TCP_HARVESTER_MAPPED_PORT` to be configured * 4dbff1f prosody: add volume /prosody-plugins-custom to docker-compose * 27ff0b6 prosody: use hashed xmpp auth
Hi everyone,
I tried to enable jibri and encountered some problems. First I got the following error message:
But this was easy to fix. I just created a file in my config folder, but now I get the following:
I think the problem is that
Window
is different fromwindow
, but I don't know where to find the code. Can you help me?Complete log
``` 2020-03-20 09:15:16.071 FINE: [35] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.meet.jitsi/edAXYQ94,from=jibribrewery@internal-muc.meet.jitsi/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpL2VkQVhZUTk0ADBCVGx1LTI1NABVsWt3X1n/o6vD6m2Rlbe7,type=set,] 2020-03-20 09:15:16.073 INFO: [35] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi] 2020-03-20 09:15:16.075 INFO: [35] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request 2020-03-20 09:15:16.078 INFO: [35] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending 'pending' response to start IQ 2020-03-20 09:15:16.078 INFO: [38] org.jitsi.jibri.api.xmpp.XmppApi.run() Starting service 2020-03-20 09:15:16.107 INFO: [38] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://meet.jitsi, callName=asdfxxssexfadsf, urlParams=[]) 2020-03-20 09:15:16.108 INFO: [38] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://meet.jitsi, callName=asdfxxssexfadsf, urlParams=[])), sessionId=fbzkuvzxovfdfkxh, callLoginParams=XmppCredentials(domain=recorder.meet.jitsi, username=recorder, password=passw0rd)) finalize script path: /config/finalize.sh and recordings directory: /config/recordings 2020-03-20 09:15:16.764 INFO: [38] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS 2020-03-20 09:15:16.779 INFO: [38] org.jitsi.jibri.selenium.JibriSelenium.() Starting empty call check with a timeout of PT30S 2020-03-20 09:15:16.790 FINE: [38] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.() Detected os as OS: LINUX 2020-03-20 09:15:16.794 INFO: [38] org.jitsi.jibri.service.impl.FileRecordingJibriService.() Writing recording to /config/recordings/fbzkuvzxovfdfkxh 2020-03-20 09:15:16.796 FINE: [38] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording 2020-03-20 09:15:16.797 INFO: [38] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY 2020-03-20 09:15:16.797 INFO: [38] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections 2020-03-20 09:15:16.798 INFO: [38] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@504ca55b 2020-03-20 09:15:16.798 FINE: [38] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@5aa6202e 2020-03-20 09:15:16.800 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri 2020-03-20 09:15:16.801 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health 2020-03-20 09:15:16.928 SEVERE: [48] org.jitsi.jibri.selenium.JibriSelenium.run() An error occurred while joining the call: org.openqa.selenium.WebDriverException: : Failed to read the 'localStorage' property from 'Window': Access is denied for this document. (Session info: chrome=78.0.3904.108) (Driver info: chromedriver=78.0.3904.105 (60e2d8774a8151efa6a00b1f358371b1e0e07ee2-refs/branch-heads/3904@{#877}),platform=Linux 4.15.0-91-generic x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 0 milliseconds Build info: version: 'unknown', revision: 'unknown', time: 'unknown' System info: host: '6648c4582aae', ip: '172.18.0.4', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-91-generic', java.version: '1.8.0_222' Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 78.0.3904.105 (60e2d8774a81..., userDataDir: /tmp/.com.google.Chrome.cJTEvn}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:41075}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 78.0.3904.108, webStorageEnabled: true} Session ID: c7d783873cf12c9cf21c44af1ca43a71 with stack: sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.lang.reflect.Constructor.newInstance(Constructor.java:423) org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214) org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166) org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40) org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80) org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44) org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543) org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:480) org.jitsi.jibri.selenium.JibriSelenium.setLocalStorageValues(JibriSelenium.kt:175) org.jitsi.jibri.selenium.JibriSelenium.access$setLocalStorageValues(JibriSelenium.kt:112) org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:255) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) java.util.concurrent.FutureTask.run(FutureTask.java:266) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) java.lang.Thread.run(Thread.java:748)2020-03-20 09:15:16.931 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: SESSION Failed to join call
2020-03-20 09:15:16.931 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Error: SESSION Failed to join call
2020-03-20 09:15:16.932 INFO: [48] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error, sending error iq
2020-03-20 09:15:16.932 FINE: [48] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
2020-03-20 09:15:16.933 INFO: [48] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
2020-03-20 09:15:16.933 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
2020-03-20 09:15:16.934 INFO: [48] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-03-20 09:15:16.934 INFO: [48] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null
2020-03-20 09:15:16.934 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
2020-03-20 09:15:16.943 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: []
2020-03-20 09:15:16.987 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type browser
2020-03-20 09:15:17.001 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 110 log entries for type driver
2020-03-20 09:15:17.026 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client
2020-03-20 09:15:17.027 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call
2020-03-20 09:15:17.045 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver
2020-03-20 09:15:17.116 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit
2020-03-20 09:15:17.116 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording
2020-03-20 09:15:27.125 SEVERE: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Timed out waiting for process logger task to complete
2020-03-20 09:15:27.126 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Recording finalize script finished with exit value 0
2020-03-20 09:15:27.127 INFO: [48] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY -> IDLE
2020-03-20 09:15:27.128 INFO: [48] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2020-03-20 09:15:27.128 INFO: [48] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@754e0f5b
2020-03-20 09:15:27.129 FINE: [48] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@504ca55b
2020-03-20 09:15:27.132 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
2020-03-20 09:15:27.132 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
The text was updated successfully, but these errors were encountered: