Maxim Sharabayko

Results 195 comments of Maxim Sharabayko

Simultaneous access to listener's config (`CUDT::m_config`) from SRT internal `newConnection(..)` and the app thread called for `srt_listen()`. Although it does not seem the right thing to do, still the data...

Destroying the `CUDTSocket::m_ControlLock` while it is being held by another thread. Can't lock it in `CUDTSocket` destructor, because it may cause lock-order-inversion with `CUDTUnited::m_GlobControlLock` ```shell WARNING: ThreadSanitizer: data race (pid=2590)...

In the `ReuseAddr.ProtocolVersion` unit test first IPv6 connection to host `::` port 5000 is being checked (`serverSocket("::", 5000, true);`). A listener is created, the connection is established, and a sample...

The `ReuseAddr.ProtocolVersion` test is crashing if the system default `bindv6only` is changed to 1. ``` sysctl -w net.ipv6.bindv6only=1 ```

> I looked at your unit test that failed. Your test and/or the thing it is testing is likely flaky because the code I changed should have absolutely zero impact...

@BlueWaterCrystal Thanks for reporting. Forgot to copy internal jitter values to the SRT stats API. :) It should work now (have not checked myself yet).

Sounds interesting. If only a unidirectional forwarding is needed, then `srt-file-transmit srt://:5555 file://con` could be used for the purpose. Note however issue #646.

> srt-file-transmit.exe where to download? It is a [sample app](https://github.com/Haivision/srt/blob/master/apps/srt-file-transmit.cpp), a part of the SRT repo.

From the backtrace it looks as if the `m_pCryptoControl` is `NULL` (see `this=0x0`): ```shell (gdb) bt #0 0x00000000004e8c40 in CCryptoControl::sendKeysToPeer (this=0x0, regen=REGEN_KM) at /home/jdube/sandbox/makito2_project/components/vendors/haisrt/srt.git/srtcore/crypto.cpp:425 #1 0x00000000004c6ccc in srt::CUDT::checkSndTimers (this=0x7fcc01ff48, regen=REGEN_KM)...

The problem is that `CUDT::processCtrl(..)` can access `m_pCryptoControl` without any protection, so that another thread can potentially destroy the object via `CUDT::closeInternal()`. It looks like the `CUDT::m_ConnectionLock` must protect the...