Error in workflow when there is a non-ASCII character in source code #132

Closed
opened 2025-04-11 10:25:47 +00:00 by tobi · 2 comments
Owner

Job log: https://code.host.antville.org/antville/helma/actions/runs/2439#jobstep-2-38

/home/runner/.cache/act/f4fb12d3c03cc784/hostexecutor/src/main/java/helma/main/ApplicationManager.java:503: error: unmappable character (0xE2) for encoding US-ASCII  
                    // I hope I am correct assuming Helma does not need Jetty???s session management, but using
Job log: https://code.host.antville.org/antville/helma/actions/runs/2439#jobstep-2-38 ```plain /home/runner/.cache/act/f4fb12d3c03cc784/hostexecutor/src/main/java/helma/main/ApplicationManager.java:503: error: unmappable character (0xE2) for encoding US-ASCII // I hope I am correct assuming Helma does not need Jetty???s session management, but using ```
Author
Owner

Looks like the runner is using US-ASCII, probably because of LANG=C?

$ whoami
runner
$ locale
LANG=C
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
Looks like the runner is using US-ASCII, probably because of `LANG=C`? ```shell $ whoami runner $ locale LANG=C LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 ```
Author
Owner

Fixed by reconfiguring the runner:

diff --git a/etc/forgejo-runner/config.yml b/etc/forgejo-runner/config.yml
index 0110996..f528a46 100644
--- a/etc/forgejo-runner/config.yml
+++ b/etc/forgejo-runner/config.yml
@@ -16,7 +16,6 @@ runner:
   capacity: 1
   # Extra environment variables to run jobs.
   envs:
+    LANG: en_US.UTF-8
   # Extra environment variables to run jobs from a file.
   # It will be ignored if it's empty or the file doesn't exist.
   env_file: .env
diff --git a/etc/systemd/system/forgejo-runner.service b/etc/systemd/system/forgejo-runner.service
index ea86223..11a4ef8 100644
--- a/etc/systemd/system/forgejo-runner.service
+++ b/etc/systemd/system/forgejo-runner.service
@@ -4,7 +4,7 @@ Documentation = https://forgejo.org/docs/latest/admin/actions/
 After = docker.service

 [Service]
-ExecStart = forgejo-runner daemon
+ExecStart = forgejo-runner daemon --config /etc/forgejo-runner/config.yml
 ExecReload = /bin/kill -s HUP $MAINPID

 # This user and working directory must already exist
$ systemctl daemon-reload
$ systemctl restart forgejo-runner
$ journalctl -u forgejo-runner --since -1min
Apr 11 11:03:01 runner forgejo-runner[151391]: time="2025-04-11T11:03:01Z" level=info msg="runner: >
Apr 11 11:03:01 runner forgejo-runner[151391]: time="2025-04-11T11:03:01Z" level=info msg="[poller >
Apr 11 11:03:01 runner systemd[1]: Stopping forgejo-runner.service - Forgejo Runner...
Apr 11 11:03:01 runner systemd[1]: forgejo-runner.service: Deactivated successfully.
Apr 11 11:03:01 runner systemd[1]: Stopped forgejo-runner.service - Forgejo Runner.
Apr 11 11:03:01 runner systemd[1]: forgejo-runner.service: Consumed 3.384s CPU time.
Apr 11 11:03:01 runner systemd[1]: Started forgejo-runner.service - Forgejo Runner.
Apr 11 11:03:01 runner forgejo-runner[152217]: time="2025-04-11T11:03:01Z" level=info msg="Starting>
Apr 11 11:03:01 runner forgejo-runner[152217]: time="2025-04-11T11:03:01Z" level=info msg="runner: >
Apr 11 11:03:01 runner forgejo-runner[152217]: time="2025-04-11T11:03:01Z" level=info msg="[poller >

Test job now shows LANG=en_US.UTF-8 and succeeds.

Fixed by reconfiguring the runner: ```diff diff --git a/etc/forgejo-runner/config.yml b/etc/forgejo-runner/config.yml index 0110996..f528a46 100644 --- a/etc/forgejo-runner/config.yml +++ b/etc/forgejo-runner/config.yml @@ -16,7 +16,6 @@ runner: capacity: 1 # Extra environment variables to run jobs. envs: + LANG: en_US.UTF-8 # Extra environment variables to run jobs from a file. # It will be ignored if it's empty or the file doesn't exist. env_file: .env ``` ```diff diff --git a/etc/systemd/system/forgejo-runner.service b/etc/systemd/system/forgejo-runner.service index ea86223..11a4ef8 100644 --- a/etc/systemd/system/forgejo-runner.service +++ b/etc/systemd/system/forgejo-runner.service @@ -4,7 +4,7 @@ Documentation = https://forgejo.org/docs/latest/admin/actions/ After = docker.service [Service] -ExecStart = forgejo-runner daemon +ExecStart = forgejo-runner daemon --config /etc/forgejo-runner/config.yml ExecReload = /bin/kill -s HUP $MAINPID # This user and working directory must already exist ``` ```plain $ systemctl daemon-reload $ systemctl restart forgejo-runner $ journalctl -u forgejo-runner --since -1min Apr 11 11:03:01 runner forgejo-runner[151391]: time="2025-04-11T11:03:01Z" level=info msg="runner: > Apr 11 11:03:01 runner forgejo-runner[151391]: time="2025-04-11T11:03:01Z" level=info msg="[poller > Apr 11 11:03:01 runner systemd[1]: Stopping forgejo-runner.service - Forgejo Runner... Apr 11 11:03:01 runner systemd[1]: forgejo-runner.service: Deactivated successfully. Apr 11 11:03:01 runner systemd[1]: Stopped forgejo-runner.service - Forgejo Runner. Apr 11 11:03:01 runner systemd[1]: forgejo-runner.service: Consumed 3.384s CPU time. Apr 11 11:03:01 runner systemd[1]: Started forgejo-runner.service - Forgejo Runner. Apr 11 11:03:01 runner forgejo-runner[152217]: time="2025-04-11T11:03:01Z" level=info msg="Starting> Apr 11 11:03:01 runner forgejo-runner[152217]: time="2025-04-11T11:03:01Z" level=info msg="runner: > Apr 11 11:03:01 runner forgejo-runner[152217]: time="2025-04-11T11:03:01Z" level=info msg="[poller > ``` [Test job](https://code.host.antville.org/antville/helma/actions/runs/2466#jobstep-2-1) now shows `LANG=en_US.UTF-8` and succeeds.
tobi closed this issue 2025-04-11 11:15:55 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: antville/helma#132
No description provided.