<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>


<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<p style="color: #777777;">
<a href="https://gitlab.com/civodul">civodul</a>
commented:
</p>
<div style="">
<p dir="auto">What happens in the client is this:</p>
<pre class="code highlight js-syntax-highlight plaintext" lang="plaintext" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 5</span>
<span id="LC2" class="line" lang="plaintext">getrandom("\x88\x33\x62\xd9\xd7\xd7\xe3\x1f\x36\xc1\x3e\x28\x01\xd8\x96\xbd\xca\xa2\xaf\x4c\xa3\xc1\x16\x4a\x16\x4a\x73\x9a\xc6\x60\xcb\x5f"..., 64, 0) = 64</span>
<span id="LC3" class="line" lang="plaintext">setsockopt(5, SOL_TCP, TCP_FASTOPEN, [1], 4) = 0</span>
<span id="LC4" class="line" lang="plaintext">sendmsg(5, {msg_name={sa_family=AF_INET, sin_port=htons(5257), sin_addr=inet_addr("127.0.0.1")}, msg_namelen=16, msg_iov=[{iov_base="\26\3\3\0\327\1\0\0\323\3\38 \27y\331\374\277\365\225\345*\224\306R1rn\3466\371\262"..., iov_len=220}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_FASTOPEN) = 220</span>
<span id="LC5" class="line" lang="plaintext">poll([{fd=5, events=POLLIN}], 1, 39999) = 1 ([{fd=5, revents=POLLIN}])</span>
<span id="LC6" class="line" lang="plaintext">recvfrom(5, "\26\3\3\0e", 5, 0, NULL, NULL) = 5</span>
<span id="LC7" class="line" lang="plaintext">poll([{fd=5, events=POLLIN}], 1, 39999) = 1 ([{fd=5, revents=POLLIN}])</span>
<span id="LC8" class="line" lang="plaintext">recvfrom(5, "\2\0\0a\3\3~\\?\275\2737'\341y\2606|s\207Q\340\226\326\305`\314\275\255tDO"..., 101, 0, NULL, NULL) = 101</span>
<span id="LC9" class="line" lang="plaintext">poll([{fd=5, events=POLLIN}], 1, 39988) = 1 ([{fd=5, revents=POLLIN}])</span>
<span id="LC10" class="line" lang="plaintext">recvfrom(5, "\26\3\3\3\302", 5, 0, NULL, NULL) = 5</span>
<span id="LC11" class="line" lang="plaintext">poll([{fd=5, events=POLLIN}], 1, 39988) = 1 ([{fd=5, revents=POLLIN}])</span>
<span id="LC12" class="line" lang="plaintext">recvfrom(5, "\v\0\3\276\0\3\273\0\3\2700\202\3\2640\202\2l\240\3\2\1\2\2\4M\340\264\3120\r\6"..., 962, 0, NULL, NULL) = 962</span>
<span id="LC13" class="line" lang="plaintext">openat(AT_FDCWD, "/gnu/store/cb6fakglpk69j8mz0g13rggp99l8v3x8-glibc-2.32/share/zoneinfo/UTC", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)</span>
<span id="LC14" class="line" lang="plaintext">poll([{fd=5, events=POLLIN}], 1, 39986) = 1 ([{fd=5, revents=POLLIN}])</span>
<span id="LC15" class="line" lang="plaintext">recvfrom(5, "\26\3\3\1}", 5, 0, NULL, NULL) = 5</span>
<span id="LC16" class="line" lang="plaintext">poll([{fd=5, events=POLLIN}], 1, 39986) = 1 ([{fd=5, revents=POLLIN}])</span>
<span id="LC17" class="line" lang="plaintext">recvfrom(5, "\f\0\1y\3\0\27A\4\365\275`\304\373\344\373\366\224\267\337\273\234\254<0\224/\302\201\ro\213"..., 381, 0, NULL, NULL) = 381</span>
<span id="LC18" class="line" lang="plaintext">poll([{fd=5, events=POLLIN}], 1, 39986) = 1 ([{fd=5, revents=POLLIN}])</span>
<span id="LC19" class="line" lang="plaintext">recvfrom(5, "\26\3\3\0,", 5, 0, NULL, NULL) = 5</span>
<span id="LC20" class="line" lang="plaintext">poll([{fd=5, events=POLLIN}], 1, 39986) = 1 ([{fd=5, revents=POLLIN}])</span>
<span id="LC21" class="line" lang="plaintext">recvfrom(5, "\r\0\0(\3\1\2@\0 \4\1\10\t\10\4\4\3\10\7\5\1\10\n\10\5\5\3\10\10\6\1"..., 44, 0, NULL, NULL) = 44</span>
<span id="LC22" class="line" lang="plaintext">poll([{fd=5, events=POLLIN}], 1, 39985) = 1 ([{fd=5, revents=POLLIN}])</span>
<span id="LC23" class="line" lang="plaintext">recvfrom(5, "\26\3\3\0\4", 5, 0, NULL, NULL) = 5</span>
<span id="LC24" class="line" lang="plaintext">poll([{fd=5, events=POLLIN}], 1, 39985) = 1 ([{fd=5, revents=POLLIN}])</span>
<span id="LC25" class="line" lang="plaintext">recvfrom(5, "\16\0\0\0", 4, 0, NULL, NULL) = 4</span>
<span id="LC26" class="line" lang="plaintext">brk(0x508000)                           = 0x508000</span>
<span id="LC27" class="line" lang="plaintext">setsockopt(5, SOL_TCP, TCP_FASTOPEN, [1], 4) = -1 EINVAL (Invalid argument)</span>
<span id="LC28" class="line" lang="plaintext">sendmsg(5, {msg_name={sa_family=AF_INET, sin_port=htons(5257), sin_addr=inet_addr("127.0.0.1")}, msg_namelen=16, msg_iov=[{iov_base="\26\3\3\0\7\v\0\0\3\0\0\0", iov_len=12}, {iov_base="\26\3\3\0F\20\0\0BA\4H\274\337\210$a\206\36m\375\334\34M_\230\35\4\v\336\37\334"..., iov_len=75}, {iov_base="\24\3\3\0\1\1", iov_len=6}, {iov_base="\26\3\3\0(\0\0\0\0\0\0\0\0\330l\362y\320\260\227-\6\222W\tDe5\337\355F)"..., iov_len=45}], msg_iovlen=4, msg_controllen=0, msg_flags=0}, MSG_FASTOPEN) = -1 EISCONN (Transport endpoint is already connected)</span>
<span id="LC29" class="line" lang="plaintext">write(2, "*** Fatal error: Error in the pu"..., 45*** Fatal error: Error in the push function.</span>
<span id="LC30" class="line" lang="plaintext">) = 45</span>
<span id="LC31" class="line" lang="plaintext">sendmsg(5, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\26\3\3\0\7\v\0\0\3\0\0\0", iov_len=12}, {iov_base="\26\3\3\0F\20\0\0BA\4H\274\337\210$a\206\36m\375\334\34M_\230\35\4\v\336\37\334"..., iov_len=75}, {iov_base="\24\3\3\0\1\1", iov_len=6}, {iov_base="\26\3\3\0(\0\0\0\0\0\0\0\0\330l\362y\320\260\227-\6\222W\tDe5\337\355F)"..., iov_len=45}], msg_iovlen=4, msg_controllen=0, msg_flags=0}, 0) = 138</span>
<span id="LC32" class="line" lang="plaintext">brk(0x4f7000)                           = 0x4f7000</span>
<span id="LC33" class="line" lang="plaintext">shutdown(5, SHUT_RDWR)                  = 0</span>
<span id="LC34" class="line" lang="plaintext">write(2, "Could not connect to 127.0.0.1:5"..., 77Could not connect to 127.0.0.1:5257: Transport endpoint is already connected</span>
<span id="LC35" class="line" lang="plaintext">) = 77</span></code></pre>
<p dir="auto">So the second <code>setsockopt</code> call fails with <code>EINVAL</code> (even though the first one succeeded, on the same file descriptor), and the <code>sendmsg</code> <code>MSG_FASTOPEN</code> call that immediately follows fails with <code>EISCONN</code>.</p>
<p dir="auto">Thoughts?</p>
</div>


</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #666;">

<br>
Reply to this email directly or <a href="https://gitlab.com/gnutls/gnutls/-/issues/1095#note_418390681">view it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.com.
If you'd like to receive fewer emails, you can
<a href="https://gitlab.com/-/sent_notifications/0107504f3f9e1c06aa96f3d5754179c0/unsubscribe">unsubscribe</a>
from this thread or
adjust your notification settings.
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Issue","url":"https://gitlab.com/gnutls/gnutls/-/issues/1095#note_418390681"}}</script>


</p>
</div>
</body>
</html>