-
Notifications
You must be signed in to change notification settings - Fork 5
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
improve instructions on being able to access test runner from local network #102
Comments
@afrawei has got caught by this. @FritzHeiden Please can you comment on the following when docker runs inside WSL2 without D.D.
netsh interface portproxy add v4tov4 listenport=8000 listenaddress=0.0.0.0 connectport=8000 connectaddress=172.30.28.51 If yes, are these the correct and complete set of ports to forward? (172.30.28.51 is the IP address of the
|
@jpiesing I believe OF is co-located with test runner inside WSL. I think default value test_runner_url = http://localhost:8000 should work. If not, user should use WSL IP address. Just to add on, I have tried to use default test_runner_url = http://localhost:8000 on WLS it work fine on our end. |
localhost works fine for me. Tried to change to docker IP 172.17.0.1 (found using powershell ifconfig). After changing config.json to that address, closing the terminal, stopping and restarting docker service, and entering "http://172.17.0.1:8000/_wave/index.html" in Chrome it returns "This site can’t be reached172.17.0.1 took too long to respond." using port 8000. Same with Firefox. Changed back to local host, opened new terminal, restarted docker and it worked fine. |
I have my "test_runner_url" setting (inside WSL2) as IP address from local PC + ":8000". Now my environment is up and running after Jon marked out a few lines in hbbtv.js as a temporary workaround |
Tried to run a test on mobile devices. The mobile devices (Android phone or iPad) will not connect to localhost. They both connect to IP 10.0.0.125. However Chrome on PC will only connect to locallost, not IP (have tried setting config.json to both. Only localhost works. When I run localhost on PC (with config.json set to localhost, and start a session (with mobile using :8000, Iit starts. I then enter the first 8 characters of the token on PC, configure the session and hit enter. The mobile devices say cannot connect to localhost. Seems the redirect to mobile is to localhost. But PC will not connect to IP. |
@gitwjr Let me share what I did and see if it works for you
If you have firewall issue, I found useful websites for reference |
Here is how it works on our side step-by-step:
Please make sure you use the right IP address ( VERY IMPORTANT!!In some situations, it may happen that the After this change, you need to:
Please follow these steps and let us know if issue could be solved on your side. |
I made the above change to host_check.sh (its called check-host.sh) in my file: "-" not "_"). The test now runs in my PC browser at P 10.0.0.125 instead of just localhost. I can also open the link on my phone. However, when I I try 10.0.0.125:8000/_wave/configuration.htlm on the PC and run a test the phone comes back "can't connect". It is still redirecting to localhost on the phone. If I run a test on my PC using 10.0.0.125 the test runs at localhost and the results pages shows http://localhost:8000/_wave/finish.html?token=3277e188-3944-11ef-8f5d-0242ac110002 when complete. Appears the phone still cannot connect to localhost which is where the test actually runs. |
ist |
I did both. And changed the config.json to IP from localhost. Before the change IP didn't work on the PC browser, only localhost. |
But phone still gets redirected to localhost after opening and running the test and can't connect to localhost. |
yes localhost on phone will not work. can you please paste the content of you config.json? |
{ |
I seems be that the docker image which uses localhost in still in docker cache. can you remove the old docker container and create again (run |
I closed terminal adn opened a new one. Then stopped dpctf and restarted it. Now running on phone. Results show pass. I didn't record it so no OF analysis. |
I had already rebuilt the container after making the change to host-check.sh. Appears the change doesn't fully flow through until close and reopen. Thanks. |
Tried to run a test using my PC to host the test an my iPad as the mobile DUT. It appears to start on the iPad, goes to "test about to start", then to "s: waiting; a: initialize". showing 10.0.0.125 in the browser window. It sits there until it comes back "session complete" except results are 2 of 2 tests timed out. No flashing QR codes or video playing. Its an older iPad mini 2, model #ME2772LL/A, software version 12.5.7 so it may not be able to run it? Apple no longer updating it. |
Tried on iPhone SE. Same result as iPad. But it works on my Pixel 6a. |
@gitwjr on iOS/iPadOS you need to make sure that MSE is supported. iPhone SE does not support MSE in Safari Browser. |
extended the readme to explain how to make the test runner accessible from other devices when using windows+wsl #106 |
With the change either localhost or my host IP address work on the PC. As expected, only host IP works on Pixel 6a. From my perspective this issue has been resolved. |
@afrawei you added also the three ports, we think these are not necessary and on our side and @gitwjr, the installation work without them. Can you please remove them and check if you installation still work. The TR only uses 8000 (for http) and 8443 (for https).
|
@louaybassbouss Yes, I have removed them since you suggested, only port 8000 is remained, and it works properly |
@afrawei thanks for the update. you can add 8443 as well, if you later want to run https tests (in this case, you need to configure a domain and corresponding SSL certificate). The documentation is updated and should reflect all the steps for Windows WSL https://github.com/cta-wave/dpctf-deploy?tab=readme-ov-file#configure-access-to-the-test-runner. @jpiesing if you are happy with it, feel free to close the issue. |
@louaybassbouss @FritzHeiden @afrawei Ethernet adapter vEthernet (WSL): Wireless LAN adapter Wi-Fi: For the router (no internet connection) I get Wireless LAN adapter Wi-Fi: Running either of these I get failed to connect. I ran netsh.exe... for port 8000 and for port 8443, Of course I changed config.json each time I changed the connection. All work for localhost. Neither work using host IP address (e.g. 10.0.0.64 or 192.168.0. |
Wireless LAN adapter Wi-Fi: IPv4 Address. . . . . . . . . . . : 192.168.0.64
My computer uses 172.29.128.1 for WSL, 192.168.0.13 for the new unconnected wifi router and 10.0.0.22 for my home router. |
Accidentally hit close. See above for comment. |
@louaybassbouss |
Thanks. I figured that out although I did it a different way (thanks to Chatgpt). And added my network IP address: As for the WSL address, I get different onees depending on whether I run ipconfig or wsl hostname -I I have both computers working now. However, when I run with the CTA computer as host and my computer as DUT, I get a single good run but subsequent runs begin and then immediately go to the green screen showing |
@louaybassbouss @afrawei @yanj-github |
@louaybassbouss @afrawei @yanj-github |
@louaybassbouss @afrawei @yanj-github |
Ran another test following the successful one above. Went green screen. Let it timeout and the next 3 worked. Again, nothing changed at any point. Green screen appears either random or after sitting for a few minutes after a test. But letting it run to timeout fixes it at least for subsequent tests run soon after. |
@gitwjr You explain a lot about how killing & restarting docker (etc) don't fix the green screen problem. Did you exit and restart the browser on the PC that was acting as the DUT? Does it make any difference if you use a different browser implementation on the PC that is acting as the DUT? It is certainly possible that something in the integration between the browser and the OS / video decoder isn't properly cleaned up. |
I typically leave a Chrome session with my "working" tabs open and open a separate session for testing. I rarely close the main session unless restarting the computer. I will try to "catch" a failure and see if closing and reopening Chrome fixes it without letting the failed test run to completion. This am I ran a test (random access of presentation) and it failed but slightly differently. It ran to frame 501, sat there, and then went to video ended event fired with test workflow failure. Since it ran to completion the next test passed. |
I don't think I've ever interrupted a test run, I always let them run to completion which might explain why I've never seen this particular failure mode. |
I only interrupt it when it fails. Otherwise, I always let it go to completion. I just ran a test and it failed, stalling at frame 1. This time it was only around 1-1.5 hours between tests and I had not stopped docker/dpctf or closed the terminal on the host (DUT is not running docker/dpctf). I stopped the test before completion (which never leads to a successful follow up test). I then closed all Chrome sessions, restarted Chrome and immediately ran another test. As always it too stalled at frame 1 but this time I let it run to completion. Then I immediately ran another test without restarting Chrome. It passed as it always does when I let the stalled/failed test run to completion. So it is not related to closing Chrome. The reason for the initial failures is not clear or obvious. Seems to be related to time between tests but there could be other things at play although I did not open, close, or change anything on the host computer. I was using the DUT to try doing some screen recordings for the instruction video. To test a different browser is time consuming since it seems to take time (hours) before the failure reappears. Whatever is causing the failure, the firing of the video ended event is the main clue. That always fixes it for subsequent tests until I let the 2 systems sit without testing for a period of time. And it always fails the first test after leaving them running overnight (although never with docker running since a system restart/crash seems to blow up the daemon and/or containers/images and require a rebuild). |
How do you interrupt it? Which device do you do that on? |
I use "Stop" on the host screen and then "Delete Session". I have tried ""Pause" then Stop then Delete as well. No difference. It is only fixed when I let it run to completion. That always fixes it. |
Just ran a test (Chrome) and it failed. Retested on Chrome. Failed. Retested on Edge. Failed. Retested on Firefox and it passed. I stopped the Chrome and Edge tests using Host Stop and Delete session. The Firefox test passed. Will retest to see if Firefox always works after a failed test. Same process: Test and fail on Chrome, stop, delete. Retest using Firefox. |
Ran another test on Chrome after a period and it failed same way at frame 1. Did not let it run to completion to "preserve" the failure. Ran same test using firefox and it ran fine. Since the last time I did this I tried both Chrome (after shutdown) and Edge and both failed follow up tests and then Firefox worked it may be an obscure issue with Chromium? I believe both Chrome and Edge are based on chromium. |
Sorry for all the updates but I keep testing to gain data. Chrome test failed again on buffer underrun and recovery at Frame 1 and local random access of a wave presentation at frame 501. Did not run to completion. Then ran buffer underrun and recovery on Firefox and it ran fine. So pretty consistent Chrome appears to be part of the problem but it clears when failed test runs to completion. Firefox doesn't seem to fail. I'll test more with Firefox to be sure. If it continues to be good, I think we should recommend Firefox at least for WSL. |
fixed with #110 |
@louaybassbouss @yanj-github @jpiesing
I added the following note to my WSL instructions. "NOTE: There have been reported cases where tests stall/freeze on e.g. frame 1 or other frames. Allowing stalled test to run to “Session completed” often clears this error for subsequent test runs. If the error persists, try running the tests on a different browser." As I don't see any fix for the error/freeze problem noted above, I recommend closing this issue, assuming something along the lines of the above note is added, if there are no further comments. |
I apologise if there's something hidden but ...
The documentation is silent about making the test runner visible on the local network that it's host is connected to.
There seem to be a number of options for this and none are mentioned.
I think this is one of the places where docker in WSL2 (without D. Desktop) is different from docker on Linux. Docker in WSL2 (without D.D) has an extra level of virtualization and potentially an extra network between it and the local network.
If some form of port forwarding is used then the instructions need to be clear that the IP address entered in the DUT must be the IP address of the PC hosting docker and not the IP address the docker instance is bound to.
The text was updated successfully, but these errors were encountered: