Done
Details
Time tracking
13h loggedAssignee
Zach MillerZach MillerStrategic PI work
YesFix versions
Priority
BlockerHTCondorCustomerGroup
condor-usersComponents
Reporter
Zach MillerZach Miller
Details
Details
Time tracking
13h logged
Assignee
Zach Miller
Zach MillerStrategic PI work
Yes
Fix versions
Priority
HTCondorCustomerGroup
condor-users
Components
Reporter
Zach Miller
Zach MillerCreated April 29, 2021 at 11:18 PM
Updated July 19, 2021 at 10:12 PM
Resolved May 10, 2021 at 7:40 PM
To reproduce: run a vanillia universe job that has an associated proxy:
While the job is running, update the proxy on the submit side. This will trigger the shadow to (eventually) send an updated proxy, which will cause the startd to crash.
On line 1199 of V9_0_0 you see this:
And it turns out
p_sock->m_send_md_ctx
is NULL, causing libcrypto to segfault.It turns out that the context only gets created when encryption is turned off, probably under the assumption that we want to checksum all the clear text. Then by the time we finalize the checksum, encryption has been turned on. However, in this case this a new TCP connection resuming a non-negotiated session, so encryption just gets turned on immediately after the session resume, and nothing has been sent in the clear from the server to the client. Hence, the context object hadn’t been created. I found several other places where we call EVP_DigestFinal without checking that the context object exists, so in the interest of being through I am adding code in all of these places to create the context object if it hadn’t already been done so.