Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segfault using TAO SSL connection with dev poll reactor #2045

Open
pierrebizz opened this issue Feb 2, 2023 · 3 comments
Open

Segfault using TAO SSL connection with dev poll reactor #2045

pierrebizz opened this issue Feb 2, 2023 · 3 comments

Comments

@pierrebizz
Copy link

pierrebizz commented Feb 2, 2023

Version

The version of ACE and/or TAO you are using
ace[core,ssl,tao]:x64-linux -> 7.0.11#2

compiled using vcpkg

Host machine and operating system

NAME="Red Hat Enterprise Linux"
VERSION="8.7 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.7"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.7 (Ootpa)"

Compiler name and version (including patch level)

gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-16)

Description

When connecting using SSL, the second connection crashes with the following stack trace:

Linking with the debug version of ACE/TAO does not crash; I'm posting here not necessarily to obtain a solution, but just to see if someone had the problem before and if someone has found a solution for it.

Thank you,

Pierre Bisaillon

(gdb) bt
#0  operator>= (tv2=..., tv1=...)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/Time_Value.inl:123
#1  ACE_Countdown_Time_T<ACE_FPointer_Time_Policy>::stop (this=0x7fa53c24ca40)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/Countdown_Time_T.cpp:48
#2  ACE_Countdown_Time_T<ACE_FPointer_Time_Policy>::~ACE_Countdown_Time_T (this=0x7fa53c24ca40,
    __in_chrg=<optimized out>)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/Countdown_Time_T.cpp:26
#3  ACE_SSL_SOCK_Acceptor::accept (this=this@entry=0x5c29fe8, new_stream=..., remote_addr=remote_addr@entry=0x0,
    timeout=timeout@entry=0x7fa53c24cad0, restart=restart@entry=true, reset_new_handle=<optimized out>)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/SSL/SSL_SOCK_Acceptor.cpp:177
#4  0x00000000013cc54a in TAO::SSLIOP::Accept_Strategy::accept_svc_handler (this=0x5c29fe0, svc_handler=0x7fa4e401d0e0)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/Svc_Handler.cpp:245
#5  0x00000000013aff59 in ACE_Acceptor<TAO::SSLIOP::Connection_Handler, ACE_SSL_SOCK_Acceptor>::handle_input (
    this=0x5c46308, listener=8)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/OS_Errno.inl:19
#6  0x000000000133f508 in ACE_Dev_Poll_Reactor::upcall (this=<optimized out>, handle=<optimized out>,
    callback=<optimized out>, event_handler=<optimized out>)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/Dev_Poll_Reactor.inl:84
#7  ACE_Dev_Poll_Reactor::dispatch_io_event (this=0x5c19df0, guard=...)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/Dev_Poll_Reactor.cpp:1298
#8  0x00000000013408f9 in ACE_Dev_Poll_Reactor::handle_events (this=0x5c19df0, max_wait_time=0x0)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/Dev_Poll_Reactor.cpp:1007
#9  0x000000000128d3bd in ACE_Reactor::handle_events (max_wait_time=0x0, this=0x5c2bda0)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/Reactor.inl:120
#10 TAO_ORB_Core::run (this=0x5c18490, tv=0x0, perform_work=0)
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/TAO/tao/ORB_Core.cpp:2314
#11 0x00000000005579d7 in TextmlORBTask::svc() ()
    at /home/ec2-user/vcpkg/buildtrees/ace/src/ACE-TAO-7-453b9ce9a9.clean/ace/Time_Value.inl:61
#12 0x0000000000b88aad in ACE_Task_Base::svc_run (args=0x7ffed8702200)
@jwillemsen
Copy link
Member

I see that you are using the ACE_Dev_Poll_Reactor, that reactor is still experimental for TAO, see http://bugzilla.dre.vanderbilt.edu for issues that still exist. Have you tried to use the default reactor?

@pierrebizz
Copy link
Author

We tried; our server opens many files, so we had to change the FD_SETSIZE so that the select of the default reactor would work; but using vckpg to get ACE, we ran into the problem of having the same FD_SETSIZE all around.

@jwillemsen
Copy link
Member

That is the big disadvantage of ACE/TAO through vcpkg or any other pre packaging, you can't tweak ACE/TAO to your needs, something I always do for each project. Can you build ACE/TAO yourself and retest with the default reactor?

@jwillemsen jwillemsen changed the title Segfault using TAO SSL connection Segfault using TAO SSL connection with dev poll reactor Feb 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants