2017-01-27 3 views
0

Ich habe Redhawk 2.0.4 auf CentOS 7.3.1611 ausgeführt. Ich habe Vita49Libraries (3.0.0), SourceVita49 (3.0.1) und SinkVita49 (3.0.1) aus der Quelle kompiliert und installiert. Wenn ich eine SourceVita49- oder SinkVita49-Komponente in die Sandbox in der IDE ziehe, erhalte ich die folgenden Fehler:Redhawk Vita49 Segmentation Fault mit CentOS7

Fehler beim Warten auf den Start der Komponente SinkVITA49_1. Komponente wurde beendet, während sie auf den Start wartet. SinkVITA49_1 Beendet mit Beendigungscode SIGSEGV (11)

Fehler beim Warten auf die Komponente SourceVITA49_1 zum Starten. Komponente wurde beendet, während sie auf den Start wartet. SourceVITA49_1 Terminiert mit Exit-Code SIGSEGV (11)

Blick auf GitHub here Ich sehe ein Problem über einen "Absturz" der Vita49Libraries unter Fedora24.

Können Sie bestätigen, dass dieses Problem auf Fedora24 die gleichen Segmentierungsfehler sind, die ich sehe?

Kennt jemand einen Weg, die VITA49-Komponenten unter CentOS7 laufen zu lassen?

Antwort

0

Es scheint sich um das gleiche Problem zu handeln, das im referenzierten GitHub-Problem gemeldet wurde. Sie können mit den folgenden Schritten über Docker replizieren:

# Run the redhawk 2.0.4 container for el7 with escalated privileges so we can get a core dump and trace it 
[[email protected] ~] docker run -it --rm --privileged --cap-add CAP_PTRACE axios/redhawk:2.0-el7 

# Clone and build 
[[email protected]] git clone https://github.com/RedhawkSDR/VITA49Libraries.git 
[[email protected]] pushd VITA49Libraries/cpp/ 
[[email protected]] ./reconf && ./configure && make -j && sudo make install && popd 

[[email protected]] git clone https://github.com/RedhawkSDR/SinkVITA49.git 
[[email protected]] pushd SinkVITA49/cpp/ 
[[email protected]] ./reconf && ./configure && make -j && sudo make install && popd 

# Set core dump size to unlimited. 
[[email protected]] ulimit -c unlimited 

# Hop into python and launch component 
[[email protected]] python 
>>> from ossie.utils import sb 
>>> snk = sb.launch('rh.SinkVITA49') 

# It will crash 
[[email protected] ~]$ ls 
core.4287 SinkVITA49 VITA49Libraries 

# Install gdb and trace out the issue 
[[email protected] ~]$ sudo yum install gdb 
[[email protected] ~]$ gdb /var/redhawk/sdr/dom/components/rh/SinkVITA49/cpp/SinkVITA49 core.4287 

# leads us to 

... 
#1 0x00007f254971204e in std::string::assign(std::string const&)() from /lib64/libstdc++.so.6 
#2 0x00007f254c802055 in operator= (__str="", this=0x7f254ca396f0 <_leapSecondsFile>) at /usr/include/c++/4.8.2/bits/basic_string.h:547 
#3 _init() at vrt_src/cpp_src/vrt/lib/VRTConfig.cc:84 
#4 0x00007f254c802f25 in vrt::VRTConfig::getLeapSecondsFile() at vrt_src/cpp_src/vrt/lib/VRTConfig.cc:141 
#5 0x00007f254c7ae0b5 in vrt::LeapSeconds::getDefaultInstance() at vrt_src/cpp_src/vrt/lib/LeapSeconds.cc:195 
#6 0x00007f254c7fad3d in vrt::TimeStamp::TimeStamp (this=0x7f254ca39640 <vrt::TimeStamp::NO_TIME_STAMP>, tsiMode=<optimized out>, tsfMode=vrt::FractionalMode_None, tsi=<optimized out>, tsf=9223372036854775808, sr=nan(0x8000000000000)) 
    at vrt_src/cpp_src/vrt/lib/TimeStamp.cc:84 
#7 0x00007f254c781d35 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at vrt_src/cpp_src/vrt/lib/TimeStamp.cc:28 
... 

# Which is the static initialization within the TimeStamp file. 

Während ich es nicht versucht haben, stelle ich mir laufen die gleichen Schritte mit dem el6 Container „Docker Lauf -es --rm --privileged --cap- addiere CAP_PTRACE axios/redhawk: 2.0 "würde keinen Core Dump machen.

+0

Siehe https://isocpp.org/wiki/faq/ctors#static-init-order, _leapSecondsFile ist eine std :: string, die bei der statischen Initialisierung sehr schwierig ist. CentOS 7 hat wahrscheinlich einen neueren Compiler, der nur eine andere Initialisierungsreihenfolge erzeugt. –

+0

Vielen Dank für die Wiedergabe dieses auf Ihrer Seite. Ich bleibe jetzt bei CentOS 6. –