error - Trace/breakpoint trap

Hi all,

Got this error when trying to start syncthing manually:

user1@host:/usr/local/bin$ syncthing Trace/breakpoint trap

Tried to start it manually because it did not start automatically.

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.4 LTS Release: 14.04 Codename: trusty

syncthing version should be v0.12.22, Linux (32 bit), because it was installed from the same repository on my other pc and it does work on that “other pc” for now.

Tried to reboot. Tried to remove and install again. No luck.

What to do to solve it?

Here are some earlier threads on the subject that may help.

I have seen workaround tips.

Tried:

$ sudo echo 1 /proc/sys/kernel/modify_ldt 1 /proc/sys/kernel/modify_ldt

But without any luck:

$ sudo ls /proc/sys/kernel/modify_ldt ls: cannot access /proc/sys/kernel/modify_ldt: No such file or directory

Tried also:

$ sudo echo 1 /proc/sys/ksplice_modify_ldt 1 /proc/sys/ksplice_modify_ldt

the same result:

$ sudo ls /proc/sys/ksplice_modify_ldt ls: cannot access /proc/sys/ksplice_modify_ldt: No such file or directory

Tried:

$ sudo echo 1 > /proc/sys/kernel/modify_ldt -bash: /proc/sys/kernel/modify_ldt: No such file or directory

Tried:

$ sudo echo 1 > /proc/sys/ksplice_modify_ldt -bash: /proc/sys/ksplice_modify_ldt: No such file or directory

Still the same error:

$ syncthing Trace/breakpoint trap

What else I can do to solve it?

I have been having the same issues over the last few days as well. None of the above workarounds work. I’m running on Debian 7.10 (wheezy) 32 bit.

$ strace syncthing

execve("/usr/bin/syncthing", [“syncthing”], [/* 14 vars */]) = 0 modify_ldt(1, {entry_number:7, base_addr:0x8b2edfc, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, 16) = -1 EPERM (Operation not permitted) — SIGSEGV (Segmentation fault) @ 0 (0) — +++ killed by SIGSEGV +++ Segmentation fault

Ok, tried to do it, installed strace using apt-get and then

$ strace syncthing

execve("/usr/bin/syncthing", [“syncthing”], [/* 26 vars */]) = 0 modify_ldt(1, {entry_number:7, base_addr:0x8b2edfc, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, 16) = -1 EPERM (Operation not permitted) — SIGTRAP {si_signo=SIGTRAP, si_code=SI_KERNEL} — +++ killed by SIGTRAP +++ Trace/breakpoint trap

Did not help me much. Would someone please translate it into human language? Thanks ahead.

The operation that Syncthing needs to do is not permitted or not supported by your kernel. Upgrade, or talk to your hosting provider if they are using some weird VPS variant.

That’s what I’ve got on machine where syncthing doesn’t work (VPS):

$ uname -r 2.6.32-042stab113.11

This is what I’ve got on machine where syncthing does work (office PC):

$ uname -r 3.13.0-85-generic

This is just FYI. Will speak to VPS support team.

calmh,

My VPS provider answered that kernel upgrade is not possible on this server (OpenVZ). As far as I can understand, it stopped working for me after syncthing version update.

Any possibility from your side to change syncthing code in the nearest version so that it will not use mentioned operation for older kernel versions?

No. This is not something by choice from our side, it’s what the compiler generates. But from what I can tell this has been the case since the 0.10 days, so I don’t think it’s recent.

calmh,

Ok, I can think about using rsync for getting data from mentioned vps, while all my other computers can continue using syncthing. I can also think about changing my vps provider, but I wait for number of other bad things before doing so.

Another question to you, maybe weird. How about using other compiler in syncthing beta version? I understand that you probably do not have too many users with out of date kernel version. I’m asking because I feel I should do everything possible from my side. Thanks ahead for your reply.

Just compile it yourself.

AudriusButkevicius,

Any howto please?

docs.syncthing.net has everything you need.

To be clear, https://docs.syncthing.net/dev/building.html.

But I’m not sure that will make a difference. If anything, you might hit the same problem when trying to run the Go compiler. If you want to try something else, google for gccgo. We have no real experience of that one so you’re mostly on your own, although we may be able to answer syncthing-specific issues that comes up while using it.

It looks like this may affect many OpenVZ VPS users who will be running kernel version 2.6.32. As far as I can tell, OpenVZ kernel 3.10 has not officially been released yet.

Is the 64-bit version of syncthing likely to have this issue also? Different compiler?

I have tried compiling a basic “hello world” program in Go 1.3 and 1.3.3, but I get a Trace/breakpoint trap error (similar strace to syncthing).

I’ve also tried gccgo but I’m afraid it’s over my head (I complied an executable but no “hello world” when I ran it). I’ve also tried following the conversation regarding the modify_ldt issue in the Golang/Docker trackers but I don’t figure out what the result was. :frowning:

So this is a fundamental issue with OpenVZ (in combination with Go), not specific to Syncthing. Let us know if you find a workaround, but otherwise there is little we can do here.

I changed to a 64 bit OS and Syncthing now runs. Not a great workaround, but at least there is one.

Thanks for for help calmh. Best of luck marchello.

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