ID |
Date |
Icon |
Author |
Author Email |
Category |
OS |
ELOG Version |
Subject |
68512
|
Fri Dec 16 14:44:19 2016 |
| Stefano Bonaldo | stefano.bonaldo.13@gmail.com | Bug fix | Mac OSX | 3.1.2 | Re: elogd crash on sorting the entries by an datetime attribute | Bug FIXED! Many thanks Stefan and my warmest congratulations for the elog project.
Stefano
Stefan Ritt wrote: |
Ok I found it!
Was tricky. In my development environment (XCode) it worked fine. Only when I compiled elogd under Sierra on the command line, the probelm occured. That's why I did not see it earlier. It has to do with some functions Apple apparently changed ("strlcpy"). These function now have a new "functionality": When two parameters overlap, the function just aborts the process. This is specific to Sierre, so on any other Linux this does not happen. I changed now the soruce code to take care of the modified functions, and now it works fine. Please update to the newest GIT revision of elogd and recompile.
Stefan
|
|
68519
|
Sat Dec 24 10:40:00 2016 |
| Andreas Warburton | awarburt@physics.mcgill.ca | Question | Mac OSX | 3.1.2 | elogd crashes during Find and Mirror operations under MacOS | When installing ELOG 3.1.2 on my Mac Sierra (10.12.2) with the latest XCode 8.2.1, it seemed to install fine but for one warning when building elogd:
cc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -DHAVE_SSL -I /opt/local/include -o elogd
src/elogd.c crypt.o auth.o regex.o mxml.o -lssl
src/elogd.c:13840:13: warning: '__builtin___strlcpy_chk' will always overflow
destination buffer [-Wbuiltin-memcpy-chk-size]
strlcpy(user_email, user_list[i], NAME_LENGTH);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/secure/_string.h:105:3: note: expanded from macro 'strlcpy'
__builtin___strlcpy_chk (dest, src, len, __darwin_obsz (dest))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
My installation was done with "sudo make install", as the instructions state. I have also been using the prescribed "launchctl" approach.
1. Is the above warning something that needs attention/correcting?
2. My elogd crashes now every time that I attempt any kind of "Find" operation.
3. I synchronize my MacOS version of elog with a linux-based version on my university's web server. I have installed 3.1.2 on the linux server, and it is running there without problems. When I now try to synchronize my 3.1.2 ELOG on MacOS laptop with the same version on my linux server, it appears to do the first mirroring operation correctly, but elogd crashes when I try a second synchronization at a later time. (For now, I have "Mirror simulate = 1" to prevent inadvertent damage.)
Can anyone help me with the above points?
Thank you,
Andreas
|
68521
|
Tue Jan 3 09:20:23 2017 |
| Andreas Luedeke | andreas.luedeke@psi.ch | Question | Mac OSX | 3.1.2 | Re: elogd crashes during Find and Mirror operations under MacOS | I have no experience with ELOG on OSX, therefore I can only give very vague and indirect support (sorry).
I suggest that you first try an installation without actual logbook data (just move it to a save place for a while). Does a "find" still crash elogd?
If elogd is still crashing, you should prune your configuration until it stops crashing. Submit the smallest config here that still crashes the logbook.
Since the logbook starts crashing after a sync, I would rather guess that it is somehow related to specific logbook entries. It would be helpful if you could isolate the offending entries.
Another approach would be to compile elogd with "make debug" and run it in the debugger. Once it crashes the debugger will show where it happened.
Happy New Year! Andreas
Andreas Warburton wrote: |
When installing ELOG 3.1.2 on my Mac Sierra (10.12.2) with the latest XCode 8.2.1, it seemed to install fine but for one warning when building elogd:
cc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -DHAVE_SSL -I /opt/local/include -o elogd
src/elogd.c crypt.o auth.o regex.o mxml.o -lssl
src/elogd.c:13840:13: warning: '__builtin___strlcpy_chk' will always overflow
destination buffer [-Wbuiltin-memcpy-chk-size]
strlcpy(user_email, user_list[i], NAME_LENGTH);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/secure/_string.h:105:3: note: expanded from macro 'strlcpy'
__builtin___strlcpy_chk (dest, src, len, __darwin_obsz (dest))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
My installation was done with "sudo make install", as the instructions state. I have also been using the prescribed "launchctl" approach.
1. Is the above warning something that needs attention/correcting?
2. My elogd crashes now every time that I attempt any kind of "Find" operation.
3. I synchronize my MacOS version of elog with a linux-based version on my university's web server. I have installed 3.1.2 on the linux server, and it is running there without problems. When I now try to synchronize my 3.1.2 ELOG on MacOS laptop with the same version on my linux server, it appears to do the first mirroring operation correctly, but elogd crashes when I try a second synchronization at a later time. (For now, I have "Mirror simulate = 1" to prevent inadvertent damage.)
Can anyone help me with the above points?
Thank you,
Andreas
|
|
68522
|
Tue Jan 3 09:44:18 2017 |
| Stefan Ritt | stefan.ritt@psi.ch | Question | Mac OSX | 3.1.2 | Re: elogd crashes during Find and Mirror operations under MacOS | The current GIT revision (c017d07) fixes the problem with the strlcpy() function (macOS 10.12.2, XCode 8.2). Can you try if that fixes your other problems, too?
Plese remember to use the recursive clone to get that version:
git clone https://bitbucket.org/ritt/elog --recursive
Stefan
Andreas Warburton wrote: |
When installing ELOG 3.1.2 on my Mac Sierra (10.12.2) with the latest XCode 8.2.1, it seemed to install fine but for one warning when building elogd:
cc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -DHAVE_SSL -I /opt/local/include -o elogd
src/elogd.c crypt.o auth.o regex.o mxml.o -lssl
src/elogd.c:13840:13: warning: '__builtin___strlcpy_chk' will always overflow
destination buffer [-Wbuiltin-memcpy-chk-size]
strlcpy(user_email, user_list[i], NAME_LENGTH);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/secure/_string.h:105:3: note: expanded from macro 'strlcpy'
__builtin___strlcpy_chk (dest, src, len, __darwin_obsz (dest))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
My installation was done with "sudo make install", as the instructions state. I have also been using the prescribed "launchctl" approach.
1. Is the above warning something that needs attention/correcting?
2. My elogd crashes now every time that I attempt any kind of "Find" operation.
3. I synchronize my MacOS version of elog with a linux-based version on my university's web server. I have installed 3.1.2 on the linux server, and it is running there without problems. When I now try to synchronize my 3.1.2 ELOG on MacOS laptop with the same version on my linux server, it appears to do the first mirroring operation correctly, but elogd crashes when I try a second synchronization at a later time. (For now, I have "Mirror simulate = 1" to prevent inadvertent damage.)
Can anyone help me with the above points?
Thank you,
Andreas
|
|
Draft
|
Tue Jan 3 12:43:56 2017 |
| Andreas Warburton | awarburt@physics.mcgill.ca | Question | Mac OSX | 3.1.2 | Re: elogd crashes during Find and Mirror operations under MacOS |
Stefan Ritt wrote: |
The current GIT revision (c017d07) fixes the problem with the strlcpy() function (macOS 10.12.2, XCode 8.2). Can you try if that fixes your other problems, too?
Plese remember to use the recursive clone to get that version:
git clone https://bitbucket.org/ritt/elog --recursive
Stefan
Andreas Warburton wrote: |
When installing ELOG 3.1.2 on my Mac Sierra (10.12.2) with the latest XCode 8.2.1, it seemed to install fine but for one warning when building elogd:
cc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -DHAVE_SSL -I /opt/local/include -o elogd
src/elogd.c crypt.o auth.o regex.o mxml.o -lssl
src/elogd.c:13840:13: warning: '__builtin___strlcpy_chk' will always overflow
destination buffer [-Wbuiltin-memcpy-chk-size]
strlcpy(user_email, user_list[i], NAME_LENGTH);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/secure/_string.h:105:3: note: expanded from macro 'strlcpy'
__builtin___strlcpy_chk (dest, src, len, __darwin_obsz (dest))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
My installation was done with "sudo make install", as the instructions state. I have also been using the prescribed "launchctl" approach.
1. Is the above warning something that needs attention/correcting?
2. My elogd crashes now every time that I attempt any kind of "Find" operation.
3. I synchronize my MacOS version of elog with a linux-based version on my university's web server. I have installed 3.1.2 on the linux server, and it is running there without problems. When I now try to synchronize my 3.1.2 ELOG on MacOS laptop with the same version on my linux server, it appears to do the first mirroring operation correctly, but elogd crashes when I try a second synchronization at a later time. (For now, I have "Mirror simulate = 1" to prevent inadvertent damage.)
Can anyone help me with the above points?
Thank you,
Andreas
|
|
|
68524
|
Tue Jan 3 12:45:13 2017 |
| Andreas Warburton | awarburt@physics.mcgill.ca | Question | Mac OSX | 3.1.2 | Re: elogd crashes during Find and Mirror operations under MacOS | Thank you very much (both Andreas and Stefan)! The build now runs without warnings, and I am now able to do Find operations without crashes. I still am having some issues with the synchronization, but I suspect that this is elog-content related, so will in the coming days do some more testing from CERN (where I have higher bandwidth with my home institution in Canada). Incidentally, I had to add a line to Makefile in order to be able to build on my Mac. See below, in case you want to update the Mac Makefile for others.
Many thanks again,
Andreas
ifdef USE_SSL
ifneq ($(USE_SSL),0)
CFLAGS += -DHAVE_SSL
CFLAGS += -I /opt/local/include
LIBS += -lssl
endif
endif
(You may wish to update the distribution if you think it may benefit other Mac users.)
Stefan Ritt wrote: |
The current GIT revision (c017d07) fixes the problem with the strlcpy() function (macOS 10.12.2, XCode 8.2). Can you try if that fixes your other problems, too?
Plese remember to use the recursive clone to get that version:
git clone https://bitbucket.org/ritt/elog --recursive
Stefan
Andreas Warburton wrote: |
When installing ELOG 3.1.2 on my Mac Sierra (10.12.2) with the latest XCode 8.2.1, it seemed to install fine but for one warning when building elogd:
cc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -DHAVE_SSL -I /opt/local/include -o elogd
src/elogd.c crypt.o auth.o regex.o mxml.o -lssl
src/elogd.c:13840:13: warning: '__builtin___strlcpy_chk' will always overflow
destination buffer [-Wbuiltin-memcpy-chk-size]
strlcpy(user_email, user_list[i], NAME_LENGTH);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/secure/_string.h:105:3: note: expanded from macro 'strlcpy'
__builtin___strlcpy_chk (dest, src, len, __darwin_obsz (dest))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
My installation was done with "sudo make install", as the instructions state. I have also been using the prescribed "launchctl" approach.
1. Is the above warning something that needs attention/correcting?
2. My elogd crashes now every time that I attempt any kind of "Find" operation.
3. I synchronize my MacOS version of elog with a linux-based version on my university's web server. I have installed 3.1.2 on the linux server, and it is running there without problems. When I now try to synchronize my 3.1.2 ELOG on MacOS laptop with the same version on my linux server, it appears to do the first mirroring operation correctly, but elogd crashes when I try a second synchronization at a later time. (For now, I have "Mirror simulate = 1" to prevent inadvertent damage.)
Can anyone help me with the above points?
Thank you,
Andreas
|
|
|
68525
|
Tue Jan 3 12:58:13 2017 |
| Stefan Ritt | stefan.ritt@psi.ch | Question | Mac OSX | 3.1.2 | Re: elogd crashes during Find and Mirror operations under MacOS | Ah, thanks for telling me. I added that to the Makefile. I did not need this because I had in my .profiel following line
export C_INCLUDE_PATH=/opt/local/include
which I need also for other macports-based projects. But having this twice does not hurt.
/Stefan
Andreas Warburton wrote: |
Incidentally, I had to add a line to Makefile in order to be able to build on my Mac. See below, in case you want to update the Mac Makefile for others.
Many thanks again,
Andreas
ifdef USE_SSL
ifneq ($(USE_SSL),0)
CFLAGS += -DHAVE_SSL
CFLAGS += -I /opt/local/include
LIBS += -lssl
endif
endif
(You may wish to update the distribution if you think it may benefit other Mac users.)
|
|
68539
|
Mon Jan 9 17:15:56 2017 |
| Andreas Warburton | awarburt@physics.mcgill.ca | Bug report | Mac OSX | V3.1.2-edc5e85 | elogd crashes during SSL Mirror operations involving attachments | My MacOS (10.12.2) elogd version V3.1.2 is a recent git commit (edc5e85), due to the fix to my earlier-described issue solved in the thread here: https://midas.psi.ch/elogs/Forum/68519.
I am trying to (re-)set up Mirror functionality with a linux server running the standard public (V3.1.2-bd75964). I had initially updated the linux server so that it also had the latest git commit (edc5e85), but could then not even add new logbook entries that involved attachments to it. I therefore rolled the linux server back to the standard public 3.1.2 version.
On the remote Mac, synchronizations usually look like they are going to work fine, with Mirror simulate = 1 switched on. After I set Mirror simulate = 0, and if the server and remote logbook are already identical, I *occasionally* get the proper "All Entries Identical" synchronization result. Unfortunately, this is very rare, and usually there is a failure whereby the remote (Mac) logbook decides that a significant fraction of its entries (usually sequential, from some seemingly random entry all the way up to the last entry) are missing on the linux server and need to be submitted back to the server from the remote Mac.
When the local and remote logbooks are not identical, and a record in need of synchronization contains an attachment, there is again destructive behaviour similar to that described above, except that the Mac elogd executable usually crashes. (As in the case of the already-identical synchronizations described above, I only tested this after observing the correct expected behaviour first with Mirror simulate = 1.)
I'd be grateful for some help/suggestions. My current testing suggests that my problems are likely not elog-content dependent. (The logbook now undergoing synching has less than 10 entries in it.)
More generally, the issue of having things behave fine with Mirror simulate = 1, but then experiencing corruption/damage when switching to Mirror simulate = 0 seems serious to me.
Many thanks, Andreas
|
|