linuxulator-steam-utils icon indicating copy to clipboard operation
linuxulator-steam-utils copied to clipboard

Assertion at mono-threads.c:1092, condition `(current > *staddr) && (current < *staddr + *stsize)' not met

Open ottop opened this issue 4 years ago • 21 comments

I'm using FreeBSD 13.0-RELEASE-p4 and want to use linux-steam-utils to run a game (Stardew Valley). This has been marked as working on the compatibility list as well. As far as graphics drivers go, I run the Nvidia proprietary ones. The issue occurs whether I get linux-steam-utils from the FreeBSD repo or compile it manually.

Each time I try to launch the game, I get the following:

/bin/sh\0-c\0/home/steam/.steam/steam/ubuntu12_32/reaper SteamLaunch AppId=413150 -- '/usr/home/steam/.steam/steam/steamapps/common/Stardew Valley/StardewValley' STEAM_RUNTIME=0\0
Game process added : AppID 413150 "/home/steam/.steam/steam/ubuntu12_32/reaper SteamLaunch AppId=413150 -- '/usr/home/steam/.steam/steam/steamapps/common/Stardew Valley/StardewValley' STEAM_RUNTIME=0", ProcID 5501, IP 0.0.0.0:0
chdir /usr/home/steam/.steam/steam/steamapps/common/Stardew Valley
GameAction [AppID 413150, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/usr/home/steam/.steam/steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/home/steam/.steam/steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
GameAction [AppID 413150, ActionID 1] : LaunchApp changed task to Completed with ""
ERROR: ld.so: object '/usr/home/steam/.steam/steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/home/steam/.steam/steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/home/steam/.steam/steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/home/steam/.steam/steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/home/steam/.steam/steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
* Assertion at mono-threads.c:1092, condition `(current > *staddr) && (current < *staddr + *stsize)' not met


Native stacktrace:

        ./StardewValley.bin.x86_64() [0x45124d]
        [0x7ffffffff514]
        /lib64/libc.so.6(gsignal+0x37) [0x8020363d7]
        /lib64/libc.so.6(abort+0x148) [0x802037ac8]
        ./StardewValley.bin.x86_64() [0x59b2c9]
        ./StardewValley.bin.x86_64() [0x59b4d7]
        ./StardewValley.bin.x86_64() [0x59b626]
        ./StardewValley.bin.x86_64() [0x5921e1]
        ./StardewValley.bin.x86_64() [0x522d2c]
        ./StardewValley.bin.x86_64() [0x54fa84]
        ./StardewValley.bin.x86_64() [0x5922e7]
        ./StardewValley.bin.x86_64() [0x522f19]
        ./StardewValley.bin.x86_64() [0x523c77]
        ./StardewValley.bin.x86_64() [0x5504c2]
        ./StardewValley.bin.x86_64() [0x523f8e]
        ./StardewValley.bin.x86_64() [0x49e6f5]
        ./StardewValley.bin.x86_64() [0x46011e]
        ./StardewValley.bin.x86_64(mono_main+0x38a) [0x4223ca]
        ./StardewValley.bin.x86_64(main+0x2ef) [0x42015e]
        /lib64/libc.so.6(__libc_start_main+0xf5) [0x802022555]
        ./StardewValley.bin.x86_64(_start+0x29) [0x41fbf9]

Debug info from gdb:


=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

/usr/home/steam/.steam/steam/steamapps/common/Stardew Valley/StardewValley: line 38:  6707 Aborted                 LC_ALL="C" ./StardewValley.bin.x86_64 $@
Game process removed: AppID 413150 "/home/steam/.steam/steam/ubuntu12_32/reaper SteamLaunch AppId=413150 -- '/usr/home/steam/.steam/steam/steamapps/common/Stardew Valley/StardewValley' STEAM_RUNTIME=0", ProcID 5501 
Uploaded AppInterfaceStats to Steam

ottop avatar Dec 21 '21 15:12 ottop

ERROR: ld.so: object '/usr/home/steam/.steam/steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.

This is completely normal, Steam puts both 32-bit and 64-bit gameoverlayrenderer.so in LD_PRELOAD and then glibc's dynamic linker always complaints about one of them.

* Assertion at mono-threads.c:1092, condition `(current > *staddr) && (current < *staddr + *stsize)' not met

That looks like you might need LD_PRELOAD=${LD_PRELOAD}:monofix.so %command%.

shkhln avatar Dec 21 '21 15:12 shkhln

ERROR: ld.so: object '/usr/home/steam/.steam/steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.

This is completely normal, Steam puts both 32-bit and 64-bit gameoverlayrenderer.so in LD_PRELOAD and then glibc's dynamic linker always complaints about one of them.

* Assertion at mono-threads.c:1092, condition `(current > *staddr) && (current < *staddr + *stsize)' not met

That looks like you might need LD_PRELOAD=${LD_PRELOAD}:monofix.so %command%.

Unfortunately it seems that adding the launch option does nothing to change the behaviour or output.

ottop avatar Dec 21 '21 15:12 ottop

Yeah, turns out I'm targeting a different codepath with that workaround. Try https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253337#c7.

shkhln avatar Dec 21 '21 16:12 shkhln

Yeah, turns out I'm targeting a different codepath with that workaround. Try https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253337#c7.

I tried adding 'kern.sgrowsiz="8192"' to my loader.conf, which I presume is what the linked post suggests. Unfortunately that also did not change anything.

ottop avatar Dec 21 '21 16:12 ottop

loader.conf? It's a sysctl value.

shkhln avatar Dec 21 '21 16:12 shkhln

loader.conf? It's a sysctl value.

Oh, I'll try that.

ottop avatar Dec 21 '21 16:12 ottop

Also, it's not specified in kilobytes. You need to set it to 8388608 for 8 MB.

shkhln avatar Dec 21 '21 16:12 shkhln

I put it in my sysctl.conf with the corrected value and restarted, but that does not seem to change anything about launching the game either.

ottop avatar Dec 21 '21 16:12 ottop

Does sysctl kern.sgrowsiz actually show it as applied?

shkhln avatar Dec 21 '21 16:12 shkhln

Does sysctl kern.sgrowsiz actually show it as applied?

Yes it does, assuming that this means that: kern.sgrowsiz: 8388608

ottop avatar Dec 21 '21 16:12 ottop

I don't see why that wouldn't work. Are you still getting the same assertion check failure?

shkhln avatar Dec 21 '21 17:12 shkhln

I don't see why that wouldn't work. Are you still getting the same assertion check failure?

Yup, I get the exact same output.

ottop avatar Dec 21 '21 17:12 ottop

You didn't attempt to upgrade glibc by chance? Or any other packages?

shkhln avatar Dec 21 '21 17:12 shkhln

You didn't attempt to upgrade glibc by chance? Or any other packages?

Well, I have updated my system yesterday to have things, well, updated, but I have not upgraded anything after that. I'm currently up to date with 13.0 latest.

ottop avatar Dec 21 '21 17:12 ottop

Are you able to test a few more XNA or Unity games? This is a really curious issue.

shkhln avatar Dec 21 '21 20:12 shkhln

Are you able to test a few more XNA or Unity games? This is a really curious issue.

So far I have only tested Stardew Valley and another game called One Thousand Lies, which is not on the compatibility list. They both throw the same error. I'll try some other games that use unity or xna from the list and from outside of the list later. I'm also going to be away for about a week from tomorrow, so I won't be able to try anything in that time, but I'll try to at least test a few more games before then.

ottop avatar Dec 21 '21 21:12 ottop

So far I have only tested Stardew Valley and another game called One Thousand Lies, which is not on the compatibility list. They both throw the same error.

I don't think that's physically possible, there is no Mono in the second game.

shkhln avatar Dec 21 '21 21:12 shkhln

So far I have only tested Stardew Valley and another game called One Thousand Lies, which is not on the compatibility list. They both throw the same error.

I don't think that's physically possible, there is no Mono in the second game.

You are right. My memory was wrong there. It has a problem with not finding /etc/machine-id.

ottop avatar Dec 21 '21 21:12 ottop

So I tired running Hollow Knight with the relevant launch option and I get a different error: *** Error in `/usr/home/steam/.steam/steam/steamapps/common/Hollow Knight/hollow_knight.x86_64': free(): invalid pointer: 0x000000080d82feb6 ***

ottop avatar Dec 21 '21 23:12 ottop

Have you try to run it with "native" mono ? See https://github.com/rfht/fnaify I had success to run it with the version 1.5.4 (had it on GOG)

monwarez avatar Jan 09 '22 14:01 monwarez

Have you try to run it with "native" mono ? See https://github.com/rfht/fnaify I had success to run it with the version 1.5.4 (had it on GOG)

In my case it didn't work and just gave me a blind configuration check failure. Might be because it's the Steam version. I presume it would be better if I could get it from GOG, but I would much prefer not spending the money on another copy.

ottop avatar Apr 07 '22 17:04 ottop