Re: Segfault while transfering

Julien David <[email protected]> Thu, 23 May 2024 06:00:26 -0700 (PDT)
Newsgroups gmane.network.unison.general
Message-ID <[email protected]>
Moreover I tried with a smaller subset of these files and still got a 
segfault at 1G transfered over 7,5

Le jeudi 23 mai 2024 à 14:56:54 UTC+2, Julien David a écrit :

> Hello
>
> OS is Debian 12 with 32G RAM
> There are around 250k files to transfer
> It goes a bit more further after upgrade to 2.53.5 and changed settings 
> but still crash around 31% (14G over 47)
> htop do not show any memory pic
> Le jeudi 23 mai 2024 à 14:31:44 UTC+2, Greg Troxel a écrit :
>
>> Julien David <[email protected]> writes: 
>>
>> > I setup a new replica on quite large directory (~50G) and got a 
>> segfault on 
>> > the first occurence. 
>> > 
>> > Here is the log: 
>> > 
>> > 2024-05-23T11:43:16.592072+00:00 web1-1 kernel: [27651508.074760] 
>> > unison[187262]: segfault at 7fff04c04fc8 ip 00000000005182c4 sp 
>> > 00007fff04c04fb0 error 6 in unison[400000+183000] likely on CPU 6 (core 
>> 0, 
>> > socket 0) 
>> > 2024-05-23T11:43:16.621810+00:00 web1-1 kernel: [27651508.100149] Code: 
>> 01 
>> > 00 00 00 48 81 ec 28 08 00 00 64 48 8b 04 25 28 00 00 00 48 89 84 24 18 
>> 08 
>> > 00 00 31 c0 48 81 fe 01 01 00 00 b8 00 01 00 00 <48> 89 4c 24 18 4c 0f 
>> 43 
>> > e8 48 d1 ff 48 d1 ea 48 89 fd 49 89 d7 45 
>>
>> We are very aware of "unison is ungraceful when running out of memory" 
>> but that has generally not manifested as segfaults. 
>>
>> In theory ocaml code should not do this, absent a bug in the ocaml 
>> compiler. (While I don't think it's very likely, you could also have a 
>> hardware issue.) 
>>
>> But, there is C code in unsion. 
>>
>> My belief, not super well founded, is that unison maintains per-file 
>> data structures, but that the total size of data is not so relevant. So 
>> the question is perhaps how many files you are syncing, vs total size. 
>> But perhaps something else is going on. 
>>
>> > root@itc-rbx-web1-1:/var/log/unison# unison -version 
>> > unison version 2.53.4 (ocaml 4.14.1) 
>>
>> Actually 2.53.5 is out, since May 6. I am not claiming it will be 
>> different, but it would be great if you could upgrade and debug with 
>> that. 
>>
>> > Transfer is over ssh with the following options: 
>> > 
>> > times = true 
>> > ignore = Path .ssh 
>> > ignore = Path .unison 
>> > log = true 
>> > logfile = /var/log/unison/source.log 
>> > maxthreads = 10 
>>
>> You didn't mention OS, how much RAM you have, and what your data and 
>> stack sizes are. I would suggest two paths: 
>>
>> see if you can find the edges of the bad behavior, by 
>> - setting times=false 
>> - setting maxthreads=1 
>> - watching with ps in a fairly tight loop to see the mem/rss of the 
>> process before it crashes 
>> - turn up data segment size (see ulimit(1)) and stack 
>> - sync less 
>>
>> run under gdb and see if you can get a stack trace. You might have to 
>> build it yourself and enable some kind of debugging symbols 
>>
>

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].