Syncthing fatal error: cannot map pages in arena address space

Hi, I’m running syncthing v0.11.26 on my NAS. I’ve been using Syncthing with no problems for around a year. One week ago it stopped working. Whenever I start the program on Windows7 32bit it flickers a few times and exits. I checked the syncthing log and it keeps showing fatal error: runtime: cannot map pages in arena address space. There’s also logs named “panic-2015115” created.

I’ve searched for the solution already, everyone says it’s because I don’t have enough ram, but I’ve been using Syncthing without issue for roughly a year. I have 4GB ram installed.

Any ideas?

I read that Go 32Bit as a limit of 512 MB. So it does not matter, how much ram you have. If you use a 32Bit Go App, it will only be able to use 512MB.

This probably happens now, because you have more data than a year ago.

Is there a solution to this?

You could try setting the environment variable GOGC to 25. This will increase CPU usage and decrease speed, but also decrease RAM usage.

If that doesn’t help, you need to either sync less data or switch to a 64Bit system.

How do I change the GOGC value in windows? I can’t find the option in my config file.

Another quick question, I use Syncthing between my Seedbox and NAS. They are only connected by one folder, and whenever this folder has new content in it, sickbeard/rage automatically relocates it to a second folder. What I’m trying to say is that my Syncthing folder is almost always empty. You mentioned that I have more data than a year ago, I do. However it’s not stored in my Syncthing folder for more than a day tops. Does this contribute to my fatal error too?

The fact that the data is no longer there doesn’t matter, as syncthing holds history of what was there before. Unless it’s always under the same file name.

Regarding GOGC, check how to set environment variables on your OS.

The amount of historic data we hold for a file that’s no longer there is just a name and a few flags though. It’s not exactly enough to make any difference on an out of memory situation. However we do allocate some memory when scanning a file, and on 32 bit builds this is tight, for large files.

Looks like changing the GOGC variable worked, Syncthing is no longer crashing. Is this a temp fix or permanent one?

If this problem happens again would I have to just change to a 64bit OS?

Thanks!

Well if you are running on a 64bit processor, then you have to be masochistic to run a 32bit OS, as you are missing out on a lot of things.

1 Like

It tells the Go garbage collection to be more aggressive, thus freeing memory faster. You’re still probably living on the edge.

(Maybe we should default to this on 32 bit builds.)

Hello Mr. Borg,

I’m having a similar issue with v0.12.5 and 0.12.6.

I’m just wondering if it is possible to configure the GO Interpreter/Compiler that you put in the Syncthing Executable to allow the use of more RAM on 32-bit builds?

I ask only because I don’t have the ability to upgrade all of my Machines to 64-bit OS’s right now.

Cheers, Amos

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.