icecast-kh icon indicating copy to clipboard operation
icecast-kh copied to clipboard

kh-16: The server does not respond after reloading the config file

Open DroidU opened this issue 2 years ago • 79 comments

If the following settings are included in the config file, it works perfectly after startup. However, if I reload the config file, the port remains open, but Icecast is not responding. Unfortunately, if the loglevel is set to level 4, when the error appears, it does not contain anything unusual.

Config file: https://pastebin.com/bFxzrzfH

DroidU avatar Jan 05 '23 07:01 DroidU

can you check against kh16.3 (https://github.com/karlheyes/icecast-kh/tags). I suspect it's down to a lock imbalance

karl

karlheyes avatar Jan 05 '23 16:01 karlheyes

kh16.3 seems to work fine.

DroidU avatar Jan 05 '23 20:01 DroidU

can you check against kh16.3 (https://github.com/karlheyes/icecast-kh/tags). I suspect it's down to a lock imbalance

karl

@karlheyes please upload windows 64 version, i will give it a try

gunsar avatar Jan 07 '23 00:01 gunsar

ok, shoudl see it at karlheyes.github.io/icecast-2.4.0-kh16.3_win64_setup.exe

I'm nearing a kh17 update so let me know of anything

karl

karlheyes avatar Jan 07 '23 20:01 karlheyes

I'm nearing a kh17 update so let me know of anything karl

thanks, I'm trying it. and still running smoothly including the relay

gunsar avatar Jan 07 '23 23:01 gunsar

@karlheyes

icecast-2.4.0-kh16.3_win64

i'm setting in icecast. xml <deny-agents>blockagen.txt</deny-agents>

settings in the blockagen.txt file *vlc* *winamp*

results : error. log [2023-01-08 06:30:38] INFO util/cached_file_recheck 2 entries read from file "blockagen.txt"

try playing with winamp and VLC still running normally and not blocked

gunsar avatar Jan 07 '23 23:01 gunsar

@karlheyes try adding to lunaplayer https://audioplayer.luna-universe.com/shortcode

with native mountpoints enter the url to lunaplayer https://sub.domain:8000/stream result: artwork and title appear and run normally

added an alias in icecast.xml <alias source="/test" dest="/stream"/> then enter the url to lunaplayer https://sub.domain:8000/test result: artwork and title do not appear

gunsar avatar Jan 07 '23 23:01 gunsar

the agents issue could be just a case-sensitive issue. The is a case insensitive setting that may usable which is something that could apply to agents. I'd have to check into the alias issue

karlheyes avatar Jan 08 '23 00:01 karlheyes

@karlheyes I'd have to check into the alias issue

it turns out that it's not just a problem added an alias in icecast.xml, from adding a fallback-mount the metadata doesn't appear on lunaplayer even though playing using a normal player (winamp, foobar, vlc etc) metadata still appears (such as song titles and artist names). with the settings in lunaplayer metadatatechnic: "stream-icy-meta", or metadatatechnic: "directly", the result remains the same, metadata does not appear for the follback mount point or from the alias

gunsar avatar Jan 08 '23 00:01 gunsar

are you seeing any other requests being made from the player to verify something like OPTIONS or similar. An alias would not make any material difference to things like icy inserts

I think I have a patch to handle case-insensitive user agent handling. It seems to work on the tests here, pushed on master

karl

karlheyes avatar Jan 08 '23 01:01 karlheyes

check for FNMATCH in the config.h first, because if that is stuffed then we need to look at that. The useragent wildcard matching is working here

[2023-01-08 02:12:26] DBUG util/add_generic_text Adding wildcard entry "VLC" [2023-01-08 02:12:26] INFO util/cached_file_recheck 2 entries read from file "agents" [2023-01-08 02:12:26] DBUG util/cached_pattern_search VLC/3.0.18 LibVLC/3.0.18 matched pattern [2023-01-08 02:12:26] INFO connection/http_client_request dropping client at 127.0.0.1 because useragent is VLC/3.0.18 LibVLC/3.0.18

unsure what you are getting.

karl

karlheyes avatar Jan 08 '23 02:01 karlheyes

check for FNMATCH in the config.h first, because if that is stuffed then we need to look at that. The useragent wildcard matching is working here

I tested using the Windows64 version, are there other settings so that it runs well?

gunsar avatar Jan 08 '23 02:01 gunsar

ok, try the link from before again. karlheyes.github.io/icecast-2.4.0-kh16.3_win64_setup.exe

windows does not have the basic library for handling that, so it is supposed to use to shipped version, but I don't think that was getting referenced. It should be now.

karl

karlheyes avatar Jan 08 '23 03:01 karlheyes

okay.. any developments for unreadable metadata in lunaplayer from alias settings or follaback mount @karlheyes ?

gunsar avatar Jan 08 '23 04:01 gunsar

ok, try the link from before again. karlheyes.github.io/icecast-2.4.0-kh16.3_win64_setup.exe

windows does not have the basic library for handling that, so it is supposed to use to shipped version, but I don't think that was getting referenced. It should be now.

thank's @karlheyes

I just downloaded the icecast-2.4.0-kh16.3_win64_setup.exe update again, the results are very satisfying and the banned agent worked fine thank you..

[2023-01-08 16:15:42] INFO util/cached_file_recheck 2 entries read from file "agents" [2023-01-08 16:15:42] INFO source/source_add_listener max on /stream is -1 (cur 0) [2023-01-08 16:15:42] INFO source/source_read listener count on /stream now 1 [2023-01-08 16:15:50] INFO connection/http_client_request dropping client at 18x.71x.xx.xx because useragent is VLC/3.0.18 LibVLC/3.0.18 [2023-01-08 16:15:50] INFO connection/http_client_request dropping client at 18x.71x.xx.xx because useragent is VLC/3.0.18 LibVLC/3.0.18

gunsar avatar Jan 08 '23 09:01 gunsar

thanks the verifying. Still not sure on the issue with the alias yet, as you have not specified whether other requests came in, and the fact that its a web client, so the moment I'm assuming it's related to CORS. Possibly down to certain headers not being allowed Can you check with the work for http headers which has that updated.

karlheyes.github.io/icecast-2.4.0-kh17-pre1_win64_setup.exe

karl

karlheyes avatar Jan 08 '23 20:01 karlheyes

@karlheyes karlheyes.github.io/icecast-2.4.0-kh17-pre1_win64_setup.exe

karl

I installed icecast-2.4.0-kh17-pre1_win64_setup with the same icecast.xml settings on version 16.3 but the icecast service still stops. not running and icecat off several times trying to restart it keeps icecast off

[2023-01-09 04:31:46] INFO yp/yp_shutdown YP cleanup complete [2023-01-09 04:31:46] INFO fserve/fserve_shutdown file serving stopped

after that can no longer restart / start icecast (always off)

after I tried deleting some of the commands in icecast.xml <mount type="normal"> <mount-name>/aac</mount-name> ...... ..... <http-headers> ...... <http-headers> </mount>

iececast service can start again

with or without adding <http-headers>..... </http-headers> in <mount type="normal">..... </mount> still the icecast service is not running and can't start/restart

gunsar avatar Jan 08 '23 21:01 gunsar

hmm ok, let me recheck some things here

karlheyes avatar Jan 08 '23 22:01 karlheyes

just doing a rebase, can I ask, what sort of settings you have in the mount. The type in the mount should be ignored as I never used that but I will make sure of that. Might have to check on windows as it seems ok here.

karl.

karlheyes avatar Jan 08 '23 23:01 karlheyes

just doing a rebase, can I ask, what sort of settings you have in the mount. The type in the mount should be ignored as I never used that but I will make sure of that. Might have to check on windows as it seems ok here.

karl.

I tried editing again

<relay> <server>xx.xxx.xxx.xxx</server> <port>8000</port> <mount>/restream</mount> <local-mount>/stream</local-mount> <username>source</username> <password>xxxxxxxxxx</password> <relay-shoutcast-metadata>1</relay-shoutcast-metadata> </relay>

<mount> <mount-name>/stream</mount-name> <charset>UTF-8</charset> <stream-name>NAME ABCDEFGH</stream-name> <stream-description>STREAM ABCDEFGH ON The Skyy</stream-description> <stream-url>https://domain.com</stream-url> <genre>Pop</genre> <public>0</public> <bitrate>128</bitrate> <http-headers> <header name="icy-index-metadata" value="1" /> <header name="icy-logo" value="https://xxxxxxxxxxxxxx.png" /> <header name="icy-country-code" value="xx" /> <header name="icy-country-subdivision-code" value="xx" /> <header name="icy-language-codes" value="xx" /> <header name="icy-main-stream-url" value="https://domain.com:8000/stream" /> <header name="icy-geo-lat-long" value="xxxxx, xxxxxx" /> </http-headers> </mount>

with or without including mount type, still iececast service is not running and can't start

gunsar avatar Jan 08 '23 23:01 gunsar

right, rebased to include the mast updates and fixed the missing status code which also faulted, For reference the status code in this build uses the fnmatch for 2* or @(200|404) sort of thing is allowed. If missing defaults to just *

icecast-2.4.0-kh17-pre2_win64_setup.exe is up

karl

karlheyes avatar Jan 09 '23 00:01 karlheyes

icecast-2.4.0-kh17-pre2_win64_setup.exe is up

@karlheyes

trial icecast-2.4.0-kh17-pre2_win64_setup.exe setting only mount it goes well icecast service running but adding http-headers inside mount : <http-headers> ........ </http-headers> icecast service stop/not running, can't start or restart

gunsar avatar Jan 09 '23 00:01 gunsar

I'll duplicate it a bit more here on windows, but the http-headers can be done globally, actually the default set would still apply, it is just a question of adding or overriding. So unless you have to add headers the CORS aspect should work. The global set would still apply to the mount block even if not defined.

actually I see the format check is failing, let me sort that

karl

karlheyes avatar Jan 09 '23 01:01 karlheyes

actually I see the format check is failing, let me sort that

@karlheyes

I'm curious, re-install icecast-2.4.0-kh17-pre1_win64_setup.exe setting again icecast.xml and remove <http-headers> and </http-headers> see below:

<relay> <server>xx.xxx.xxx.xxx</server> <port>8000</port> <mount>/restream</mount> <local-mount>/stream</local-mount> <username>source</username> <password>xxxxxxxxx</password> <relay-shoutcast-metadata>1</relay-shoutcast-metadata> </relay>

<mount> <mount-name>/stream</mount-name> <charset>UTF-8</charset> <stream-name>NAME ABCDEFGH</stream-name> <stream-description>STREAM ABCDEFGH ON The Skyy</stream-description> <stream-url>https://domain.com</stream-url> <genre>Pop</genre> <public>0</public> <bitrate>128</bitrate> <header name="icy-index-metadata" value="1" /> <header name="icy-logo" value="https://xxxxxxxxxxxxxx.png" /> <header name="icy-country-code" value="xx" /> <header name="icy-country-subdivision-code" value="xx" /> <header name="icy-language-codes" value="xx" /> <header name="icy-main-stream-url" value="https://domain.com:8000/stream" /> <header name="icy-geo-lat-long" value="xxxxx, xxxxxx" /> </mount>

The results in the log are as follows:

[2023-01-09 09:15:27] INFO logging/recheck_log_file Using log file .\logs\access.log [2023-01-09 09:15:27] INFO main/server_proc_init Icecast 2.4.0-httpheaders-1 server reading configuration from icecast.xml [2023-01-09 09:15:27] INFO connection/get_ssl_certificate No SSL capability on any configured ports [2023-01-09 09:15:27] INFO connection/connection_setup_sockets 2 listener socket(s) for port 8001 [2023-01-09 09:15:27] INFO connection/connection_setup_sockets 2 listener socket(s) for port 8000 [2023-01-09 09:15:27] INFO connection/connection_setup_sockets 4 listening sockets setup complete [2023-01-09 09:15:27] INFO main/server_process Icecast 2.4.0-httpheaders-1 server started [2023-01-09 09:15:27] INFO client/workers_adjust requested worker count 2 [2023-01-09 09:15:27] INFO client/log_commit_thread started [2023-01-09 09:15:27] INFO client/worker_start starting incoming worker thread 000000cb9ad85ad0 [2023-01-09 09:15:27] INFO yp/yp_recheck_config Adding new YP server "http://dir.xiph.org/cgi-bin/yp-cgi" (timeout 15s, default interval 600s) [2023-01-09 09:15:27] INFO yp/yp_client_add Starting Directory client for YP processing [2023-01-09 09:15:27] INFO connection/connection_thread connection thread started

gunsar avatar Jan 09 '23 02:01 gunsar

icecast-2.4.0-kh17-pre3_win64_setup.exe is now up. The header validation was not working and ended up invalidating the name, so I've reworked it and that should be all ok now

karl

karlheyes avatar Jan 09 '23 02:01 karlheyes

icecast-2.4.0-kh17-pre3_win64_setup.exe is now up. The header validation was not working and ended up invalidating the name, so I've reworked it and that should be all ok now

@karlheyes

Thank's now i install icecast-2.4.0-kh17-pre3_win64_setup.exe the result is as follows:

[2023-01-09 09:35:16] INFO thread/ lock abort set to 0 [2023-01-09 09:35:16] INFO logging/recheck_log_file Using log file .\logs\access.log [2023-01-09 09:35:16] INFO main/server_proc_init Icecast 2.4.0-kh17-pre3 server reading configuration from icecast.xml [2023-01-09 09:35:16] INFO connection/get_ssl_certificate No SSL capability on any configured ports [2023-01-09 09:35:16] INFO connection/connection_setup_sockets 2 listener socket(s) for port 8001 [2023-01-09 09:35:16] INFO connection/connection_setup_sockets 2 listener socket(s) for port 8000 [2023-01-09 09:35:16] INFO connection/connection_setup_sockets 4 listening sockets setup complete [2023-01-09 09:35:16] INFO main/server_process Icecast 2.4.0-kh17-pre3 server started [2023-01-09 09:35:16] INFO client/workers_adjust requested worker count 2 [2023-01-09 09:35:16] INFO client/log_commit_thread started [2023-01-09 09:35:16] INFO client/worker_start starting incoming worker thread 000000e0ad9f5e50 [2023-01-09 09:35:16] INFO yp/yp_recheck_config Adding new YP server "http://dir.xiph.org/cgi-bin/yp-cgi" (timeout 15s, default interval 600s) [2023-01-09 09:35:16] INFO yp/yp_client_add Starting Directory client for YP processing [2023-01-09 09:35:16] INFO connection/connection_thread connection thread started [2023-01-09 09:35:16] INFO slave/start_relay_stream Starting relayed source at mountpoint "/stream" [2023-01-09 09:35:16] INFO slave/open_relay_connection using username source for /stream [2023-01-09 09:35:16] INFO slave/open_relay_connection connecting to 1xx.xx.xx.xx:8000 for /stream [2023-01-09 09:35:16] INFO format-mp3/format_mp3_get_plugin Created format details for /stream [2023-01-09 09:35:16] INFO format-mp3/mpeg_apply_client icy metadata format expected on /stream, interval 16000 [2023-01-09 09:35:16] INFO source/source_init Source /stream initialised [2023-01-09 09:35:16] INFO source/source_apply_mount Applying mount information for "/stream" [2023-01-09 09:35:16] INFO slave/start_relay_stream source /stream is ready to start [2023-01-09 09:35:16] INFO source/source_read listener count on /stream now 0 [2023-01-09 09:35:16] INFO mpeg/check_for_aac Detected AAC MPEG-4, 22050Hz 2 channel(s) 64 kbps on 1xx.xx.xx.xx [2023-01-09 09:35:16] INFO source/source_set_override no override for /stream set [2023-01-09 09:35:16] INFO format-mp3/parse_icy_metadata incoming title for /stream Bon Jovi - Always [2023-01-09 09:35:16] INFO format-mp3/metadata_setup icy metadata on /stream as (3) StreamTitle='Bon Jovi - Always';... [2023-01-09 09:35:16] INFO util/cached_file_recheck 3 entries read from file "agents" [2023-01-09 09:35:16] WARN client/client_http_apply header problem Connection:Close [2023-01-09 09:35:16] INFO source/source_read listener count on /stream now 1

[2023-01-09 09:35:16] WARN client/client_http_apply header problem Connection:Close

gunsar avatar Jan 09 '23 02:01 gunsar

I guess you trying to set a connection header? This should be just a warning on a 1.0 connection. I can make it so that is silently ignored for that case

karlheyes avatar Jan 09 '23 10:01 karlheyes

I guess you trying to set a connection header? This should be just a warning on a 1.0 connection. I can make it so that is silently ignored for that case

well I tried to play stream on 1 player (winamp). now I tried to play on 3 devices (winamp, VLC, foobar) there is no more warning in the log

gunsar avatar Jan 09 '23 11:01 gunsar

how about this luna player?

karlheyes avatar Jan 09 '23 11:01 karlheyes

how about this luna player?

in lunaplayer for the native mountpoint of the encoder/relay, metadata it runs normally. I think maybe if the relay appears metadata because there is a command <relay-shoutcast-metadata>1</relay-shoutcast-metadata> the mountpoint of the alias and fallback-mount metadata are not showing maybe because there is no metadata relay command

I also noticed reading metadata in luna player has something to do with the status-json.xsl and xml2json.xslt files. if the file is deleted the metadata is lost in luna player including the original mouthpoint from the encoder or from the metadata relay

gunsar avatar Jan 09 '23 11:01 gunsar