Hi Julien/Daniel,
Thanks for the replies. I had read that github issue prior to emailing
the list, and it did solve the initial error I was having, which was due
to running osrm-datastore as root and later as user "osrm". Rebooting
the machine solved this as it did for you, Julien. But after that I'm
faced with this issue.
@Daniel: /tmp contains the two files:
-rw-rw-r-- 1 osrm osrm 0 Jan 26 16:34 osrm-datastore.lock
-rw-rw-r-- 1 osrm osrm 0 Jan 26 16:34 osrm.lock
Output of the strace:
root@htzh /opt/osrm # su - osrm -c "strace osrm-datastore
/opt/osrm/data/planet-latest/planet-latest.osrm"
...
open("/opt/osrm/data/planet-latest/planet-latest.osrm.tld", O_RDONLY) = 5
read(5,
"OSRN\5\17\0M\25\17\0\0\0\0\0\0\1\0\3\0\1\1\3\0\1\0\v\0\1\1\v\0"...,
8191) = 8191
close(5) = 0
stat("/opt/osrm/data/planet-latest/planet-latest.osrm.partition",
0x7ffcde3c8d20) = -1 ENOENT (No such file or directory)
stat("/opt/osrm/data/planet-latest/planet-latest.osrm.cells",
0x7ffcde3c8d20) = -1 ENOENT (No such file or directory)
stat("/opt/osrm/data/planet-latest/planet-latest.osrm.cell_metrics",
0x7ffcde3c8d20) = -1 ENOENT (No such file or directory)
stat("/opt/osrm/data/planet-latest/planet-latest.osrm.mldgr",
0x7ffcde3c8d20) = -1 ENOENT (No such file or directory)
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
write(1, "[info] Allocating shared memory "..., 57[info] Allocating
shared memory of 96772768369 bytes
) = 57
stat("/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=4096, ...}) = 0
stat("/tmp/osrm.lock", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
stat("/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=4096, ...}) = 0
stat("/tmp/osrm.lock", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
shmget(0x10001b9, 96772768369, IPC_CREAT|0644) = -1 EINVAL (Invalid
argument)
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
write(2, "\33[31m[error] Error while attempt"..., 88[error] Error while
attempting to allocate shared memory: Invalid argument, code 21) = 88
write(2, "\33[0m", 4) = 4
write(2, "\n", 1
) = 1
write(2, "terminate called after throwing "..., 48terminate called after
throwing an instance of ') = 48
...
Can you provide any further insight into what the problem might be?
By the way, we're using the latest release version (v5.15.0) built from
source on 16.04.
Kind regards,
Kieran Caplice
On 26/01/18 17:48, Julien Coupey wrote:
Hi,
Not sure if you're hitting the same problem here, but I recall a
related discussion happening a while back at:
https://github.com/Project-OSRM/osrm-backend/issues/1724
At least it provides a few hints on permissions and shared memory.
Julien
Le 26/01/2018 à 18:31, Daniel Patterson a écrit :
Kieran,
Hmm, we could probably improve the error handling here and make
the message a bit more useful.
The problem is probably one of:
1) Permission problems accessing /tmp/osrm.lock
2) Permission problems creating shared memory
Code 21 is:
$ errno 21
EISDIR 21 Is a directory
So I'd suspect some bad filesystem permissions somewhere. You can
try running the `osrm-datastore` command under `strace` and see if
you can spot the syscal that's failing with - that might give a hint
as to what's going wrong.
daniel
On Fri, Jan 26, 2018 at 8:57 AM, Kieran Caplice
<[email protected] <mailto:[email protected]>> wrote:
Hello,
I'm wondering if anyone can help out with this error I'm getting
when running osrm-datastore under a non-root user:
root@htzh /opt/osrm # su - osrm -c "osrm-datastore
/opt/osrm/data/planet-latest/planet-latest.osrm"
[info] Loading data into REGION_1
[info] load names from:
"/opt/osrm/data/planet-latest/planet-latest.osrm.names"
[info] Allocating shared memory of 96772768369 bytes
[error] Error while attempting to allocate shared memory: Invalid
argument, code 21
terminate called after throwing an instance of
'osrm::util::exception'
what(): Invalid argumentinclude/storage/shared_memory.hpp:308
root@htzh /opt/osrm # su - osrm -c "ulimit -a | grep max"
max locked memory (kbytes, -l) 128849018880
max memory size (kbytes, -m) unlimited
max user processes (-u) 1031189
Available shared memory for the user has been increased in
/etc/security/limits.conf as per the wiki page, as shown above.
The server has 256GB of RAM, with at least 200GB available most of
the time. I successfully ran osrm-datastore and osrm-routed as the
root user earlier, but we would ideally run it under a separate
user.
Thanks in advance.
Kind regards,
Kieran Caplice
_______________________________________________
OSRM-talk mailing list
[email protected] <mailto:[email protected]>
https://lists.openstreetmap.org/listinfo/osrm-talk
<https://lists.openstreetmap.org/listinfo/osrm-talk>
_______________________________________________
OSRM-talk mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/osrm-talk
_______________________________________________
OSRM-talk mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/osrm-talk
_______________________________________________
OSRM-talk mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/osrm-talk