streaming-university / public-moq-vs-dash

A testbed for MOQ Transport and DASH protocols
6 stars 0 forks source link

Relay Not Producing Expected Output and Error When Running `make pub-moq` #4

Open ulen2000 opened 1 month ago

ulen2000 commented 1 month ago

Description: After running the command make dev, everything appears to be working correctly with no errors in the terminal. The following output is shown:

 ✔ Container public-moq-vs-dash-install-certs-1  Created                                                                      0.1s
 ✔ Container dash-origin                         Created                                                                      0.1s
 ✔ Container cockpit-server                      Created                                                                      0.1s
 ✔ Container relay                               Created                                                                      0.1s
 ✔ Container demo                                Created                                                                      3.6s
Attaching to cockpit-server, dash-origin, demo, install-certs-1, relay
install-certs-1  | go: downloading github.com/kixelated/mkcert v1.4.4-days
install-certs-1  | go: downloading golang.org/x/net v0.0.0-20220421235706-1d1ef9303861
install-certs-1  | go: downloading software.sslmate.com/src/go-pkcs12 v0.2.0
install-certs-1  | go: downloading golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29
cockpit-server   | Cockpit WebSocket server listening on 8000
install-certs-1  | go: downloading golang.org/x/text v0.3.7
dash-origin      | Finished parsing cmd line:
dash-origin      | data_root:            /app/data
dash-origin      | server_port_ingest:   8079
dash-origin      | server_port_delivery: 8080
dash-origin      | server_proto:         http
dash-origin      | Listening for ingest on port:   8079
dash-origin      | Listening for delivery on port: 8080
install-certs-1  | The local CA is already installed in the system trust store! 👍
install-certs-1  |
install-certs-1 exited with code 0
relay            | Running in development mode
demo             |
demo             | > mhv-2024-moqt-demo@0.0.0 dev
demo             | > vite
demo             |
demo             |
demo             |   VITE v5.4.0  ready in 165 ms
demo             |
demo             |   ➜  Local:   http://localhost:5173/
demo             |   ➜  Network: http://172.18.0.5:5173/

However, the relay container does not produce the expected output. Based on the code content, relay should output something similar to:

Running `target/debug/moq-relay --listen '[::]:4443' --tls-cert /etc/tls/cert --tls-key /etc/tls/key --dev`
relay            | [2024-08-13T08:23:15Z INFO  moq_relay::quic] listening on [::]:4443

But this output is missing. This leads to a failure when running make pub-moq, with the following errors:

[2024-08-14T06:11:59Z INFO  moq_pub] connecting to relay: url=https://localhost:4443/dev
[2024-08-14T06:11:59Z DEBUG rustls::client::hs] No cached session for DnsName("localhost")
[2024-08-14T06:11:59Z DEBUG rustls::client::hs] Not resuming any session
Error: failed to create WebTransport session size=     415kB time=00:00:00.80 bitrate=4246.7kbits/s speed=0.228x

Caused by:
    0: connection error
    1: timed out
av_interleaved_write_frame(): Broken pipe
Error writing trailer of pipe:: Broken pipe
...
Conversion failed!
make: *** [Makefile:18: pub-moq] Error 1

Additional Information:

DenizUgur commented 1 month ago

The watch mode for relay code (or Rust in general) has some bootstrap time. Either wait a while or manually trigger a file save on moq-relay folder.

ulen2000 commented 1 month ago

Thank you for the reply! Yes, after waiting a long time (more than 30 minutes sometimes), I can see the relay's new step, but the wait is quite long.

Could you please provide more details on what you mean by "manually trigger a file save on the moq-relay folder"? Should I go into the relay container, navigate to /project, and then...? Any specific steps or commands would be really helpful.

Thanks again for your support!

DenizUgur commented 1 month ago

The "development" version of our system assumes that you'd be modifying the source files so whenever that happens related module/container would reflect those changes.

In this case, you'd have to go to repos/moq-rs and open any file and just save it. That action alone should trigger the re-build.

ulen2000 commented 1 month ago

image image

Sorry... but after I open any file in repos/moq-rs and just save it, it doesn’t seem to make any changes... Maybe I should just wait...?