Jump to content
Luzmog

Linux Dedicated Server - Map roads shapefile not found

Recommended Posts

Hello,

 

Using the linux dedicated server on Debian 8 (64 bit) I found a very annoying issue.

 

Context: I got an AI group with a vehicle (3 men + 1 offroad with driver), I want it to go from point A to point B, behaviour is "SAFE" and waypoint type is "SAD". On hosted server everything is working fine, AI get in the vehicle and drive to the waypoint following roads. But when I load the same mission on the linux dedicated server, nothing works, they don't get in the vehicle and the driver go alone without following roads...

 

When the mission starts I get this error:

 

Can't find real path "a3\map_altis\data\roads\roads.shp": "No such file or directory"

 

Server log with an empty mission: http://pastebin.com/m81p61L4

 

I don't get this error on a Windows Dedicated or Hosted Server, but I get it as well on Ubuntu 15.10 with a freshly installed dedicated server.

 

Additionally, I get some "Road not found" errors in the server log. I guess it's happening every time a group spawns and gets the order to move to the waypoint.

 

EDIT:

 

Mission file to reproduce this issue: https://www.dropbox.com/s/pjmqzam83v7frtu/Roads_Bug_Reproduction.Altis.pbo?dl=0

 

To test on Windows server (hosted or dedicated) or even in SP, and then with Linux DS to see the difference.

Share this post


Link to post
Share on other sites

I dont have an answer just wated to respond , i have the same issue ..and some other type warnings of model p3d.

Share this post


Link to post
Share on other sites

Yes I already checked, there is indeed a "map_altis_data.pbo" in "addons" directory, I unpacked it and I found the file "roads/roads.shp".

 

However, I ran a strace on arma3server, and I found that it's trying to run a "lstat" on the file as if it was unpacked.

 

lstat64("/home/steam/steamcmd/games/arma3/a3\\map_stratis\\data\\roads\\roads.shp", 0xff9ba410) = -1 ENOENT (No such file or directory)

 

I don't know how the game accesses those "pbo" files, but I don't think it unpacks them all at runtime, so the file shouldn't be accessible with a syscall...

 

Any dev here to look at this issue ?

Share this post


Link to post
Share on other sites

Is the Linux Dedicated Server still maintained at least ??

 

Looking around to find some references to this error I found those posts:

 

https://forums.bistudio.com/topic/185512-mission-works-only-on-windows-servers/#entry2927361 (2015)

 

=> I'm already using a ".pbo" mission file

 

https://forums.bistudio.com/topic/181639-arma-3-ubuntu-server-altis-fails/?hl=roads.shp (2015)

 

=> I'm using a home made server, with 8Go ram, and I believe he solved his SegFault issue, not the "roads.shp" one

 

https://forums.bistudio.com/topic/160270-linux-dedicated-server-feedback/page-4#entry2517733 (2013 !!!)

 

=> Again, the "roads.shp" issue is mentioned but still not fixed... Already tried the "MPMissions" symlink trick: not helping

 

 

So the issue seems to exist since 2013, it shows up every time someone gets another problem with his linux server and posts its trace. But no one talks about this particular issue, which is, in my opinion, a major one...

Share this post


Link to post
Share on other sites

post ur script for getting em in the vec please. maybe we ll get it work.

 

Maybe this topic could help.

Main key for solving the problem was to assign driver, crew and vehicle to the same group. After that it worked.

Share this post


Link to post
Share on other sites

Thank you sarogahtyp, I made a quick bug reproduction mission, no script, just a waypoint's trigger to wait for the player to spawn and see what happens:

 

https://www.dropbox.com/s/pjmqzam83v7frtu/Roads_Bug_Reproduction.Altis.pbo?dl=0

 

I watched your topic, I appreciate your help but I don't think it's the problem: in this mission, without any script you can see that everything works perfectly in SP/MP hosted/MP Windows dedicated, but when I put it on Linux Server, the driver doesn't care about roads, he just drives away without waiting its group mates. In my other mission I use "addVehicle" to add the vehicle to the group but when putting vehicle in editor I believe it's implicitly done. Anyway, the fact is that it works everywhere except on Linux (at least for me)...

Share this post


Link to post
Share on other sites

Is there any better way to get in touch with the Linux Dedicated Server's developer(s) ?

 

I'm available to provide all the information needed to help solving this issue.

Share this post


Link to post
Share on other sites

Running a strace again and looking closer to what happens, I may have found the origin of this issue.

 

In the trace I can see the syscall "getdents" is used to get directory entries (maybe not used directly, but by calling readdir from glibc)

 

openat(AT_FDCWD, "addons", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 76
getdents(76, /* 2 entries */, 32768)    = 13384

 

Apparently, it only returns 2 entries for the "addons" directory, which is obviously wrong.

I am using a 64 bits system, and "getdents" seems deprecated. We can read in the "getdents" man page:

 

The original Linux getdents() system call did not handle large filesystems  and  large  file  offsets.   Consequently,  Linux  2.4 added getdents64(), with wider types for the d_ino and d_off fields employed  in the linux_dirent structure.

 

It's interesting to note that sometimes, the 64 bits version ("getdents64") is used, and seems to work fine:

 

openat(AT_FDCWD, "/home/steam", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 262
getdents64(262, /* 20 entries */, 32768) = 616

 

There is indeed, 20 entries in my "/home/steam" directory

 

 

$ ls -a /home/steam | wc -l

20

Share this post


Link to post
Share on other sites

I could reproduce this strange behaviour by using "getdents" syscall in a 32 bits compiled program. It seems like it is "strace" that misinterpret 32 bits programs on 64 bits system, because even if "strace" see "2 entries" the program itself still see all files. So, we are back with the old:

 

Can't find real path "a3\map_altis\data\roads\roads.shp": "No such file or directory"

 

The reason why I looked around the "addons" read at server start is that in Linux DS there is not the "Loaded addons" list in the log as for Windows DS. But in fact they are still loaded.

 

I'm running out of ideas to solve this problem :(

Share this post


Link to post
Share on other sites

Sorry to bump again but I can see that developers answer on some topic, so I guess: no answer == not aware.

Share this post


Link to post
Share on other sites

Just tried to set up a server on centos 7 x64 (virtualbox). I found that vanilla missions don't work.

Some not launching, some not working in progress. Does linux servers under official support?

Share this post


Link to post
Share on other sites

What missions have you tried (for example) ? Maybe I can test some of them and see if it works on Debian 8.

For now the only issue I noticed is about map roads that are not loaded but maybe there is more... Did you get any error message ?

 

Does linux servers under official support?

 

I think it's supposed to be. But right now I guess Apex release and maybe Mac/Linux ports are taking them a lot of work.

Share this post


Link to post
Share on other sites

What missions have you tried (for example) ? 

 

For example ZR 8+1 Race on Stratis (Karts): it loads, countdown works. If I press W key left leg animation works, engine does not starts. If I JIP with another instance, I have no kart at all.

 

 

I think it's supposed to be. But right now I guess Apex release and maybe Mac/Linux ports are taking them a lot of work.

 

True. Anyway there are lots of more important things to do with Arma.

 

 

Upd:

I made all must-do-before-on-linux stuff (updates) and now I have 

 

Wait for host and

Can't find real path "a3\map_stratis\data\roads\roads.shp": "No such file or directory"

for vanilla missions.

Edited by 13dagger

Share this post


Link to post
Share on other sites

First try on ZR 8+1 Race on Stratis (Karts) mission, and... no kart... Even with the first player (I started the server with "-autoInit").

 

The only errors I'm getting (except the "roads.shp not found") are:

 

16:27:21 Animation a3\cargoposes_f_heli\anim\passenger_inside_5aim_obstructed.rtm not found or empty
16:27:21 Animation a3\cargoposes_f_heli\anim\passenger_inside_5aim_fromobstructed.rtm not found or empty
16:27:21 Animation a3\cargoposes_f_heli\anim\passenger_inside_5aim_toobstructed.rtm not found or empty
16:27:21 Animation a3\cargoposes_f_heli\anim\passenger_inside_5aimpistol_obstructed.rtm not found or empty
16:27:21 Animation a3\cargoposes_f_heli\anim\passenger_inside_5aimpistol_fromobstructed.rtm not found or empty
16:27:21 Animation a3\cargoposes_f_heli\anim\passenger_inside_5aimpistol_toobstructed.rtm not found or empty

 

Don't think it's related...

 

Anyway there are lots of more important things to do with Arma.

 

I agree...
 

Share this post


Link to post
Share on other sites

Always same problem here with my Linux Debian server 64btis.

My mission works well, but i have a problem with convoy AI and the road.

16:19:52 Starting mission:
16:19:52  Mission file: Altis_v3.8 (__cur_mp)
16:19:52  Mission world: Altis
16:19:52  Mission directory: mpmissions\__cur_mp.Altis\
Can't find real path "a3\map_altis\data\roads\roads.shp": "No such file or directory"

I have see in my /arma3/addons/map_altis.pbo/config.bin the link to roads.shp.

		envTexture = "A3\data_f\env_land_ca.paa";
		newRoadsShape = "A3\map_Altis\data\roads\roads.shp";
		class OutsideTerrain
		{
			satellite = "A3\map_Altis\data\s_satout_co.paa";
			enableTerrainSynth = 0;
			class Layers
			{
				class Layer0
				{
					nopx = "A3\Map_Data\gdt_seabed_nopx.paa";
					texture = "A3\Map_Data\gdt_seabed_co.paa";
				};
			};
			colorOutside[] = {0.227451,0.27451,0.384314,1};
		};

I try to put in lower case, but same error when starting server.

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

//// EDIT : HOW TO FIX THE ERROR Can't find real path "a3\map_altis\data\roads\roads.shp": "No such file or directory"

 

I have solve this problem, now no error when i start the server.
Just edit config.bin inside /addons/map_altis.pbo and give the correct path like this :) (you just need Derapify the file with an arma tools)

Replace:
newRoadsShape = "A3\map_Altis\data\roads\roads.shp";

By your own full path :
newRoadsShape = "\home\arma3\a3\map_altis\data\roads\roads.shp";
  • Like 1

Share this post


Link to post
Share on other sites

 

Always same problem here with my Linux Debian server 64btis.

My mission works well, but i have a problem with convoy AI and the road.

16:19:52 Starting mission:
16:19:52  Mission file: Altis_v3.8 (__cur_mp)
16:19:52  Mission world: Altis
16:19:52  Mission directory: mpmissions\__cur_mp.Altis\
Can't find real path "a3\map_altis\data\roads\roads.shp": "No such file or directory"

I have see in my /arma3/addons/map_altis.pbo/config.bin the link to roads.shp.

		envTexture = "A3\data_f\env_land_ca.paa";
		newRoadsShape = "A3\map_Altis\data\roads\roads.shp";
		class OutsideTerrain
		{
			satellite = "A3\map_Altis\data\s_satout_co.paa";
			enableTerrainSynth = 0;
			class Layers
			{
				class Layer0
				{
					nopx = "A3\Map_Data\gdt_seabed_nopx.paa";
					texture = "A3\Map_Data\gdt_seabed_co.paa";
				};
			};
			colorOutside[] = {0.227451,0.27451,0.384314,1};
		};

I try to put in lower case, but same error when starting server.

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

//// EDIT : HOW TO FIX THE ERROR Can't find real path "a3\map_altis\data\roads\roads.shp": "No such file or directory"

 

I have solve this problem, now no error when i start the server.

Just edit config.bin inside /addons/map_altis.pbo and give the correct path like this :) (you just need Derapify the file with an arma tools)

Replace:
newRoadsShape = "A3\map_Altis\data\roads\roads.shp";

By your own full path :
newRoadsShape = "\home\arma3\a3\map_altis\data\roads\roads.shp";

I assume that the arma3server executable is in /home/arma3  in your case? 

 

In my case arma3server lives in /home/arma3/arma3_server, so i have changed the newRoadShape line to:  

newRoadShape = "\home\arma3\arma3_server\a3\map_altis\data\roads\roads.shp";

This does get rid of the error message, but I am not sure if it effectively solves the issue with AI not finding any roads. Since i have an AI patrol mod added to the server which isn't able to work, when it doesn't know where the roads are.

 

This is an issue which breaks arma3 dedi functionality. So I hope the developers do give this priority.

 

cheers,

 

Redd

Share this post


Link to post
Share on other sites

I can confirm that. No more error message but still problems with AI not finding roads.

Share this post


Link to post
Share on other sites

Hello,

 

I would like to know if there is any follow up on this issue. Since we're on a crossroads to either stay with a windows based solution or a linux based solution running on our server. I'd like to know where i can follow progress on this bug. 

 

 

cheers,

 

Redd

 

 

- currently testing Arma3 dedicated server for linux on a Ubuntu 14.04.4 LTS installation

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×