savonet / liquidsoap

Liquidsoap is a statically typed scripting general-purpose language with dedicated operators and backend for all thing media, streaming, file generation, automation, HTTP backend and more.
http://liquidsoap.info
GNU General Public License v2.0
1.42k stars 130 forks source link

Liquidsoap on Windows crashes on startup when attempting to connect to S3 via HTTPS #1477

Closed sirherbertlemon closed 2 years ago

sirherbertlemon commented 3 years ago

Describe the bug I am trying to have liquidsoap connect to an .m3u playlist living on my S3 bucket and output to an Icecast server that is hosted on the same machine. I temporarily enabled complete public access to my playlist and am able to reach it and download it through a browser, but when liquidsoap attempts to download it I get the following and then the whole thing crashes:

2021/01/18 09:48:27 >>> LOG START 2021/01/18 09:48:27 [main:3] Liquidsoap 1.4.3 2021/01/18 09:48:27 [main:3] Using: bytes=[distributed with OCaml 4.02 or above] pcre=7.4.1 sedlex=2.2 menhirLib=20181113 dtools=0.4.0 duppy=0.8.0 cry=0.6.4 mm=0.5.0 xmlplaylist=0.1.4 lastfm=0.3.2 ogg=0.5.2 vorbis=0.7.1 opus=0.1.3 speex=0.2.1 mad=0.4.6 flac=0.1.7 flac.ogg=0.1.7 dynlink=[distributed with Ocaml] lame=0.3.3 gstreamer=0.3.0 fdkaac=0.3.1 theora=0.3.1 ao=0.2.1 samplerate=0.1.4 taglib=0.3.5 ssl=0.5.9 camomile=1.0.1 yojson=1.7.0 faad=0.4.0 portaudio=0.2.1 winsvc=0.1.1 2021/01/18 09:48:27 [gstreamer.loader:3] Loaded GStreamer 1.16.0 0 2021/01/18 09:48:27 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master. 2021/01/18 09:48:27 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples. 2021/01/18 09:48:27 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks. 2021/01/18 09:48:27 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks. 2021/01/18 09:48:27 [sandbox:3] Could not find binary bwrap, disabling sandboxing.. 2021/01/18 09:48:27 [video.converter:3] Couldn't find preferred video converter: gavl. 2021/01/18 09:48:27 [threads:4] Created thread "gstreamer_main_loop" (1 total). 2021/01/18 09:48:27 [audio.converter:3] Using samplerate converter: libsamplerate. 2021/01/18 09:48:27 [threads:4] Created thread "generic queue #1" (1 total). 2021/01/18 09:48:27 [threads:4] Created thread "generic queue #2" (2 total). 2021/01/18 09:48:27 [threads:4] Created thread "non-blocking queue #1" (3 total). 2021/01/18 09:48:27 [threads:4] Created thread "non-blocking queue #2" (4 total). 2021/01/18 09:48:27 [clock:4] Currently 1 clocks allocated. 2021/01/18 09:48:27 [clock.wallclock_main:4] Starting 1 sources... 2021/01/18 09:48:27 [source:4] Source output.icecast_8396 gets up. 2021/01/18 09:48:27 [source:4] Source mksafe gets up. 2021/01/18 09:48:27 [source:4] Source playlist_8393 gets up. 2021/01/18 09:48:27 [playlist(dot)m3u:3] Loading playlist... 2021/01/18 09:48:27 [procol.external:4] Fetching https head for https://ave-har-testbucket.s3.amazonaws.com/playlist.m3u Certificate[1] subject=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Baltimore CA-2 G2 Certificate[1] issuer =/C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root SSL: rejecting connection - error=20

When I modify the URL to just http it works perfectly. To Reproduce I'm executing with the following .liq script: output.icecast(%mp3(bitrate=32, samplerate=22050, stereo=false), host = "localhost", port = 8000, fallible=true, password = "icecastpassword", mount = "radio", mksafe(playlist(mode="normal", "https://ave-har-testbucket.s3.amazonaws.com/playlist.m3u")))

Here is a gif of what I'm seeing when I execute: liquidsoap_windows_error

Version details

Install method I downloaded and extracted the Windows version from https://github.com/savonet/liquidsoap/releases/download/v1.4.3/liquidsoap-v1.4.3-win64.zip

toots commented 3 years ago

Thanks for this report. I'll try to look at it for 1.4.4.

toots commented 3 years ago

Hi! It looks like something is wrong with the ssl binding on windows. I'm not sure if I'll be able to fix that for 1.4.4. I plan on switching away from our internal HTTP implementation with liquidsoap 2.0 and use a binding to libcurl. Hopefully that will improve the situation.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 2 years ago

This issue was closed for lack of activity. If you believe that it is still relevant, please confirm that it applies to the latest released version of liquidsoap and re-open the ticket. Thanks!