dekuashe
Terrarian
- Steam or GOG
- Steam
- Single Player/Multiplayer
- Multi
- Operating System
- Linux Other
- Terraria Version
- 1.4.0.4
- Controls Used
- Keyboard/Mouse
My primary use is a multiplayer server in Linux (tested on 64-bit Ubuntu 16.04.6 LTS running on an i5-2500K w/16gb RAM and a 18.04.4 LTS VM running on that Ubuntu 16 host configured with 2 CPUs and 8GB RAM), while the actual game client I use runs on my desktop (Linux Mint 19.3 Cinnamon edition, i7-6700 w/32gb RAM and a GTX 970). My initial testing was with the Ubuntu 18 VM with 4GB RAM, but when I ran into issues with 1.4.0.1, I first tried bumping that VM up to 8GB and then finally just moved everything over to the host for more power, so most of my testing has been on the Ubuntu 16 host (after moving the VM back down to 4gb to free up host memory).
Version 1.4.0.4, but this wasn't read correctly in 1.4.0.1 either.
I launch the game with: /<mypath>/TerrariaServer -config /<mypath>/serverconfig.txt
Tested with these options:
autocreate=2
seed=1793070349
difficulty=0
secure=1
language=en-US
upnp=0
priority=1
And just for reference, options like worldname, password, motd, world, etc all seem to work OK. Except for autocreate. I’ve also tried creating other medium worlds (random seed), and they all end up with the same issues.
There's actually a few issues stemming from this, so I'll go through them one by one starting from the core issue. I’ve labeled attached screenshots appropriately.
A. It isn't actually creating the world that is specified. The serverconfig.txt comment is the following:
#Creates a new world if none is found. World size is specified by: 1(small), 2(medium), and 3(large).
So my world should be a medium world. It felt like a medium world as it felt about the right size, but it's not. It is marked "unknown" if I move it to my single player folder, it is slightly smaller than a medium world generated with the same seed, and the world generated isn't seeded the same way, so it isn't just some kind of weirdly cut off medium world, it's a truly differently sized world? with a different gen. When I look at the FULL world seed, that first digit indicates a setting of "0", so it seems like something isn't being parsed correctly for that setting, resulting in some kind of default of "0" instead of the "2" I specified. So in my case, the full world seed was: 0.1.1.1793070349 vs the expected: 2.1.1.1793070349. However, setting it to “1” works correctly (single player mode tells me it’s a small world) and “3” also works correctly. Creating a new multiplayer world, even with the same seed, works just fine from within the game client itself. It’s only when I’m doing this with a headless server using the autocreate option. I have not tested this on Windows.
The world itself plays just fine, however, outside having a built-in hellevator. I had some segfaults and a corrupted world in 1.4.0.1/1.4.0.2 but I haven’t really had that since, but I don’t know if it’s related to me moving the server from the VM to the host though.
B. The 0(unknown) world generated from the Linux server has a portion of the map on the far right that is missing blocks/everything from top to bottom. I'd say it's roughly half the width of the ocean on that side. However, you can still interact with this area (build a bridge over it, jump straight down to the bottom, sometimes jellyfish get confused and actually swim through the air where the water is supposed to be). I've generated 2 different worlds on the server now using autocreate and the result is the same. Windows clients connecting to my server see this same thing.
C. If I generate that world on the server, and then immediately copy it over to my single player Worlds folder without playing it on the server first, and then play it locally as a single player world, there is no missing chunk on the right side of the map.
D. When I played that world on the server to explore the missing chunk on the right, I built a quick dirt bridge all the way across the missing chunk. I saved it and copied it over to my single player Worlds folder, and when I play it in single player mode, my bridge is still there along with the missing chunk.
E. HOWEVER if I enter that world in single player mode and immediately exit (I did a “dirty exit” by just closing the game window, but it’s happened when doing a normal exit too), then restart the game and go back in, not only does the missing chunk FILL IN, but my dirt bridge gets all messed up too, as the dirt blocks have vertical open faces (like it's attached to something top and bottom) instead of facing to their horizontally adjacent blocks like they’re supposed to.
F. Trying to replicate this strategy when it's running on the server (only quick Xing out of the game client on my desktop, NOT the server) resulted in a segfault when I tried to exit the server (typing "exit" in the console) after the client disconnected ("line 42: 13689 Segmentation fault (core dumped) ./${BASENAME}.bin.${ext} $@"). However, when I started the server again, the world loaded fine, but that entire chunk was missing off my map completely as if I never explored it, and my dirt bridge was cut off too, like it re-deleted that chunk off the right again or something. But if you look at the screenshots, you can see that it still thought I explored the last column of blocks when I jumped all the way down as they’re still lit up on the map without the empty chunk right next to it being marked as explored. This doesn’t happen if I haven’t jumped down yet, as you can see in earlier screenshots.
- Might be related, but I hit a different segfault when saving, then exiting a large world too (“line 42: 24333 Segmentation fault (core dumped) ./${BASENAME}.bin.${ext} $@”. Maybe a memory thing when the world is larger than medium (a TRUE medium)?
- I’ve also hit this error when exiting my 0(unknown) world:
_wapi_handle_unref_full: Attempting to unref unused handle 0x7
Exception inside UnhandledException handler: Stream does not support writing
But this last error has happened only once when doing some additional testing while writing this up.
Version 1.4.0.4, but this wasn't read correctly in 1.4.0.1 either.
I launch the game with: /<mypath>/TerrariaServer -config /<mypath>/serverconfig.txt
Tested with these options:
autocreate=2
seed=1793070349
difficulty=0
secure=1
language=en-US
upnp=0
priority=1
And just for reference, options like worldname, password, motd, world, etc all seem to work OK. Except for autocreate. I’ve also tried creating other medium worlds (random seed), and they all end up with the same issues.
There's actually a few issues stemming from this, so I'll go through them one by one starting from the core issue. I’ve labeled attached screenshots appropriately.
A. It isn't actually creating the world that is specified. The serverconfig.txt comment is the following:
#Creates a new world if none is found. World size is specified by: 1(small), 2(medium), and 3(large).
So my world should be a medium world. It felt like a medium world as it felt about the right size, but it's not. It is marked "unknown" if I move it to my single player folder, it is slightly smaller than a medium world generated with the same seed, and the world generated isn't seeded the same way, so it isn't just some kind of weirdly cut off medium world, it's a truly differently sized world? with a different gen. When I look at the FULL world seed, that first digit indicates a setting of "0", so it seems like something isn't being parsed correctly for that setting, resulting in some kind of default of "0" instead of the "2" I specified. So in my case, the full world seed was: 0.1.1.1793070349 vs the expected: 2.1.1.1793070349. However, setting it to “1” works correctly (single player mode tells me it’s a small world) and “3” also works correctly. Creating a new multiplayer world, even with the same seed, works just fine from within the game client itself. It’s only when I’m doing this with a headless server using the autocreate option. I have not tested this on Windows.
The world itself plays just fine, however, outside having a built-in hellevator. I had some segfaults and a corrupted world in 1.4.0.1/1.4.0.2 but I haven’t really had that since, but I don’t know if it’s related to me moving the server from the VM to the host though.
B. The 0(unknown) world generated from the Linux server has a portion of the map on the far right that is missing blocks/everything from top to bottom. I'd say it's roughly half the width of the ocean on that side. However, you can still interact with this area (build a bridge over it, jump straight down to the bottom, sometimes jellyfish get confused and actually swim through the air where the water is supposed to be). I've generated 2 different worlds on the server now using autocreate and the result is the same. Windows clients connecting to my server see this same thing.
C. If I generate that world on the server, and then immediately copy it over to my single player Worlds folder without playing it on the server first, and then play it locally as a single player world, there is no missing chunk on the right side of the map.
D. When I played that world on the server to explore the missing chunk on the right, I built a quick dirt bridge all the way across the missing chunk. I saved it and copied it over to my single player Worlds folder, and when I play it in single player mode, my bridge is still there along with the missing chunk.
E. HOWEVER if I enter that world in single player mode and immediately exit (I did a “dirty exit” by just closing the game window, but it’s happened when doing a normal exit too), then restart the game and go back in, not only does the missing chunk FILL IN, but my dirt bridge gets all messed up too, as the dirt blocks have vertical open faces (like it's attached to something top and bottom) instead of facing to their horizontally adjacent blocks like they’re supposed to.
F. Trying to replicate this strategy when it's running on the server (only quick Xing out of the game client on my desktop, NOT the server) resulted in a segfault when I tried to exit the server (typing "exit" in the console) after the client disconnected ("line 42: 13689 Segmentation fault (core dumped) ./${BASENAME}.bin.${ext} $@"). However, when I started the server again, the world loaded fine, but that entire chunk was missing off my map completely as if I never explored it, and my dirt bridge was cut off too, like it re-deleted that chunk off the right again or something. But if you look at the screenshots, you can see that it still thought I explored the last column of blocks when I jumped all the way down as they’re still lit up on the map without the empty chunk right next to it being marked as explored. This doesn’t happen if I haven’t jumped down yet, as you can see in earlier screenshots.
- Might be related, but I hit a different segfault when saving, then exiting a large world too (“line 42: 24333 Segmentation fault (core dumped) ./${BASENAME}.bin.${ext} $@”. Maybe a memory thing when the world is larger than medium (a TRUE medium)?
- I’ve also hit this error when exiting my 0(unknown) world:
_wapi_handle_unref_full: Attempting to unref unused handle 0x7
Exception inside UnhandledException handler: Stream does not support writing
But this last error has happened only once when doing some additional testing while writing this up.
Attachments
-
A1.png44.3 KB · Views: 73
-
B1.png441.4 KB · Views: 85
-
B2.png11.2 KB · Views: 76
-
B3.png821.4 KB · Views: 106
-
C1.png13.3 KB · Views: 78
-
D1.png466.1 KB · Views: 82
-
D2.png9.9 KB · Views: 63
-
E1.png395.8 KB · Views: 79
-
E2.png9 KB · Views: 66
-
F1.png119.3 KB · Views: 72
-
F2.png181.5 KB · Views: 65
-
F3.png9.5 KB · Views: 68