Icecast2.service error before install from dietpi-software

1]: Started icecast2.service - Icecast (DietPi).
Sep 19 11:36:55 DietPi (icecast2)[674]: icecast2.service: Failed to determine user credentials: No such process
Sep 19 11:36:55 DietPi (icecast2)[674]: icecast2.service: Failed at step USER spawning /usr/bin/icecast2: No such process
Sep 19 11:36:55 DietPi systemd[1]: icecast2.service: Main process exited, code=exited, status=217/USER
Sep 19 11:36:55 DietPi systemd[1]: icecast2.service: Failed with result 'exit-code'.
Sep 19 14:30:27 DietPi systemd[1]: Started icecast2.service - Icecast (DietPi).
Sep 19 14:30:27 DietPi systemd[1]: icecast2.service: Main process exited, code=exited, status=217/USER
Sep 19 14:30:27 DietPi systemd[1]: icecast2.service: Failed with result 'exit-code'.
Sep 19 15:03:51 DietPi systemd[1]: Started icecast2.service - Icecast (DietPi).
Sep 19 15:03:52 DietPi icecast2[17581]: /etc/icecast2/icecast.xml:37: parser error : EntityRef: expecting ';'
Sep 19 15:03:52 DietPi icecast2[17581]:         <source-password>********bjT_</source-password>
Sep 19 15:03:52 DietPi icecast2[17581]:                                        ^
Sep 19 15:03:52 DietPi icecast2[17581]: /etc/icecast2/icecast.xml:39: parser error : EntityRef: expecting ';'
Sep 19 15:03:52 DietPi icecast2[17581]:         <relay-password>********bjT_</relay-password>
Sep 19 15:03:52 DietPi icecast2[17581]:                                       ^
Sep 19 15:03:52 DietPi icecast2[17581]: /etc/icecast2/icecast.xml:43: parser error : EntityRef: expecting ';'
Sep 19 15:03:52 DietPi icecast2[17581]:         <admin-password>********bjT_</admin-password>
Sep 19 15:03:52 DietPi icecast2[17581]:                                       ^
Sep 19 15:03:52 DietPi icecast2[17581]: FATAL: error parsing config file (/etc/icecast2/icecast.xml)
Sep 19 15:03:52 DietPi icecast2[17581]: XML config parsing error
Sep 19 15:03:52 DietPi systemd[1]: icecast2.service: Main process exited, code=exited, status=1/FAILURE
Sep 19 15:03:52 DietPi systemd[1]: icecast2.service: Failed with result 'exit-code'.

Any ideas for a solution ?

I guess your password contains some special characters which are not compatible with the Icecast XML config file.

According to that at least & and < won’t work. Would be interesting to know whether escaping them with their HTML code replacement works, or whether Icecast takes these codes literal instead.

EDIT: It works. Looks like we can replace & with &amp; and < with &lt; automatically, to prevent this issue.

Fixed with: dietpi-software: Icecast: allow special (XML) characters in password · MichaIng/DietPi@2586c50 · GitHub

Would be great if you could test this with a reinstall of Icecast. Let me push a new beta for that.

Okay done. Would be great if you could test with the beta:

G_DEV_BRANCH beta
dietpi-software reinstall 135
G_SUDO G_CONFIG_INJECT 'DEV_GITBRANCH=' 'DEV_GITBRANCH=master' /boot/dietpi.txt

Next DietPi release is scheduled for tomorrow, hence switching only the target branch back to master (stable) is okay, tomorrow you will be offered a DietPi update to stable v9.17.

I think that in my case the problem is the underscore character “_” and “&”

 19 16:35:22 DietPi icecast2[29140]: FATAL: error parsing config file (/etc/icecast2/icecast.xml)
Sep 19 16:35:22 DietPi icecast2[29140]: XML config parsing error
Sep 19 16:35:22 DietPi systemd[1]: icecast2.service: Main process exited, code=exited, status=1/FAILURE
Sep 19 16:35:22 DietPi systemd[1]: icecast2.service: Failed with result 'exit-code'.
Sep 19 16:38:03 DietPi systemd[1]: Started icecast2.service - Icecast (DietPi).
Sep 19 16:38:03 DietPi icecast2[29830]: /etc/icecast2/icecast.xml:37: parser error : EntityRef: expecting ';'
Sep 19 16:38:03 DietPi icecast2[29830]:         <source-password>********bjT_</source-password>
Sep 19 16:38:03 DietPi icecast2[29830]:                                        ^
Sep 19 16:38:03 DietPi icecast2[29830]: /etc/icecast2/icecast.xml:39: parser error : EntityRef: expecting ';'
Sep 19 16:38:03 DietPi icecast2[29830]:         <relay-password>********bjT_</relay-password>
Sep 19 16:38:03 DietPi icecast2[29830]:                                        ^
Sep 19 16:38:03 DietPi icecast2[29830]: /etc/icecast2/icecast.xml:43: parser error : EntityRef: expecting ';'
Sep 19 16:38:03 DietPi icecast2[29830]:         <admin-password>********bjT_</admin-password>
Sep 19 16:38:03 DietPi icecast2[29830]:                                       ^
Sep 19 16:38:03 DietPi icecast2[29830]: FATAL: error parsing config file (/etc/icecast2/icecast.xml)
Sep 19 16:38:03 DietPi icecast2[29830]: XML config parsing error
Sep 19 16:38:03 DietPi systemd[1]: icecast2.service: Main process exited, code=exited, status=1/FAILURE
Sep 19 16:38:03 DietPi systemd[1]: icecast2.service: Failed with result 'exit-code'.
root@DietPi:/etc/icecast2#

The beta test did not fix the underscore “_” issue.

Hmm, at least the underscore has no special meaning in XML, so there seem to be also no replacement code available. Must be something at the application level then, which we might not be able to workaround. So if you remove that underscores from the config file, a restart works?

systemctl restart icecast2

Yes, you’re right, it was indeed the “&.” I replaced it directly in /etc/icecast2/icecast2.xml with &amp; and now the server launches.

And the beta + reinstall did not fix this?

No, I had to make the change directly in the configuration file.

Ah now I see why: we replace the password only if the default hackme is still applied. So reinstalling it won’t touch it. And I was just about to think about how to skip that on reinstall, not realizing that it is the case already :sweat_smile:.

But all good for fresh installs now. Tested with & and < and they get both replaced and login works as expected.

Thank you very much for your help, dietpi is really a great server!