ID:2521627
 
Resolved
Converting from ANSI to UTF-8 could cause a crash or junk data in Linux.
BYOND Version:513.1493
Operating System:Linux
Web Browser:Chrome 77.0.3865.120
Applies to:All
Status: Resolved (513.1497)

This issue has been resolved.
Descriptive Problem Summary:
After build number prior to of higher than 1493, the DM runs unpredictably on the latest Linux distributions. Segmentation fault occurs randomly.

Here some pipelines that my friend ran on Gitlab CI, one for each distro (distro version can be found in branches names) and additionally 512, 513.1491 for EOAN, demonstrating the BYOND version dependency of this error:
https://gitlab.com/FireFlashie/sigsegv-in-new-distros/ pipelines

Expected Results:
New version will behave as old under recent Linux distros.

Does the problem occur:
Every time? Or how often? Randomly.
In other games? Not tested.
In other user accounts? Not needs testing.
On other computers? Yes (tested on travis-ci too).

When does the problem NOT occur?
On build prior to 513.1492 or less OR older distro versions.
That page doesn't give me any info I can use to investigate. What tests are failing and why? What parts of the code behave differently? That's the information I need.
Unfortunatly, I cannot give you more info about this issue. Coredump is missing for whatever reason. Tests are failing randmomly with segfault on compile, usually 1-2 of them for each pipeline, but only with version >= 513.1963 and recent Linux distros such as Ubuntu Eoan or Debian Buster.
Well you can tell me something about the code that's compiling, or something. The job logs don't tell me anything at all that I can investigate.

Granted I can't test this properly but I still need some kind of relevant data. Seems like it should be just as likely to fail compiling on Windows or in another Linux distro. Also even without a core dump there should be crash trace output. In fact the lack of a core dump or crash trace suggests the testing process you're using might be interfering somehow, or misconfigured.
I'm building code from this repo: https://gitlab.com/Foxern/SS13/Foxern_Bay12.git

Here is output of "$DM" $dmepath.mdme 2>&1 | tee build_log.txt: https://pastebin.com/raw/M3VH4vW4

And here output of GDB for coredump: https://pastebin.com/raw/zqC3QMVj
That stack trace from the core dump might help, but I'll need to know where libbyond.so was loaded in that core dump to get the offset values.
In response to FireFlashie
FireFlashie wrote:
Something like that? https://pastebin.com/raw/6mbLv7in

That was very helpful! Thanks.

I believe I know what went wrong here and will have a fix in the next build.
Lummox JR resolved issue with message:
Converting from ANSI to UTF-8 could cause a crash or junk data in Linux.
Descriptive Problem Summary:
Copyright symbol causes "Extra argument" in some complex cases on Linux if file encoded with "old" Windows-1252. It's failing only on Exodus for some reason.
Failed pipeline: https://gitlab.com/FireFlashie/Foxern_Bay12/-/jobs/346557986
Changes resulting this behavior (gitlab WEB-interface doesn't work good with Windows-1252, but I'm added a © symbol): https://gitlab.com/FireFlashie/Foxern_Bay12/commit/ 3050acb51bc2a69f074502b0aa166c031d8f2dbd

Source code: https://gitlab.com/FireFlashie/Foxern_Bay12/tree/ copyright-513-problem
company_name definition: https://gitlab.com/FireFlashie/Foxern_Bay12/blob/master/ maps/~mapsystem/maps.dm#L57
company_name override for exodus: https://gitlab.com/FireFlashie/Foxern_Bay12/blob/master/ maps/exodus/exodus_define.dm#L25

Expected Results:
Work as earlier build or as any Windows version.

Actual Results:
code/game/machinery/newscaster.dm:801:error: : extra argument

When does the problem NOT occur?
If .dm file encoded with UTF-8 or BYOND version <513.1493.


In response to FireFlashie
This is almost definitely a duplicate of your other issue.
In response to Lummox JR
Yep, it is. Just tested new minor build, all working as excepted.