<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql/essentials/utils/threading, branch main</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=main</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2026-03-16T09:28:09Z</updated>
<entry>
<title>Fix deadlock at TAsyncQueue destroy</title>
<updated>2026-03-16T09:28:09Z</updated>
<author>
<name>udovichenko-r</name>
<email>udovichenko-r@yandex-team.com</email>
</author>
<published>2026-03-16T09:02:55Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=d053bbed6083c50d92ac355d834401d818dd1010'/>
<id>urn:sha1:d053bbed6083c50d92ac355d834401d818dd1010</id>
<content type='text'>
commit_hash:e5c4c456980e980653cd26029a350b52b1e49514
</content>
</entry>
<entry>
<title>YQL-20086: Enable arcadia and bugprone checks</title>
<updated>2025-11-25T12:17:10Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2025-11-25T11:42:02Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=be643a543711e2ce9205f3d7446435086e043d6d'/>
<id>urn:sha1:be643a543711e2ce9205f3d7446435086e043d6d</id>
<content type='text'>
This patch enables more Clang Tidy checks for the `yql/essentials` project.

I chosen the policy to enable all checks by default because
- It will keep us updated when new checks are become available in the DevTools
  whitelist.
- You never know what check will be useful, even if it was not fired now.

Why some checks from the https://nda.ya.ru/t/8QnKCVIO7NWhBD were disabled?
- `arcadia-taxi-` checks are `userver`-specific.
- `bugprone-bool-pointer-implicit-conversion` is not applicable to our
  codebase as we heavily used to it.
- `bugprone-branch-clone` triggered on a code that is not obviously
  rewrittable and not so poor.
- `bugprone-dynamic-static-initializers` are heavily used in our codebase
  especially in the translator. Static variables with dynamic initialization
  are so common, so refactor them is too hard and requires huge code rewritting
  to deliver some hardcoded configuration values via ctors, having them in a one
  place.
- `bugprone-exception-escape` is useful check for programs where the care of
  exception safety is taken, but we a lot of places where exception can be thrown
  from the destructor or move-operator. I left a TODO in the `.clang-tidy` to
  fix this. Maybe will create a ticket.
- `bugprone-lambda-function-name` appears when we throw an exception from the
  lambda. I think, that this is okay and do not see any options to fix it.
- `bugprone-macro-parentheses` had false positives at `YQL_ENSURE` second argument
  and also broke some code, by surrounding `A` at `template &lt;class A&gt;`.
- `bugprone-misplaced-widening-cast`,
  `bugprone-narrowing-conversions`,
  `bugprone-signed-char-misuse` are disabled because checking arithmetics
  correctness is hard and non-trivial. I am not sure that it worth spending
  a lot of time on it as everything seems to work well :o)
- `bugprone-reserved-identifier` was triggered on some harmless identifier in
  computation, so I decided just to turn this off, rather than argue with someone.
- `bugprone-suspicious-enum-usage` happend on Arcadia HTTP client usage. Do not
  think that it is worth to argue with Arcadia HTTP client code owners.
- `bugprone-suspicious-memory-comparison` happened in some compuration test.
  I just decided to trust low-level code authors.
- `bugprone-too-small-loop-variable` seems not really a problem and lets you
  safe some symbols on `static_cast`s.
- `bugprone-sizeof-expression` had so many false positives at computation.
- `bugprone-unchecked-optional-access` a good check, but optionals are dereferenced
  everywhere in our codebase. Of course, in a perfect world near each of such
  dereference should be an assertion with comment why it is a valid action, because
  when static analysis can not infer that the value is non-null, then it is
  not an obvious thing for a human also. But we a too far from such code quality now.
- `bugprone-undefined-memory-manipulation` is interesting. It argued on some `memcpy`
  at computation. There was some `UnboxedValues` array and this objects have
  some logic of memory marking and releasing under an `NDEBUG`. I added a TODO to check
  this. Maybe will create a ticket.
- `bugprone-unhandled-self-assignment` has false positives on non-owning objects
  such as iterators.
commit_hash:c0c0de6b157bf095eb681bdea55ada47845de814
</content>
</entry>
<entry>
<title>YQL-20086 invert flag</title>
<updated>2025-10-10T14:08:12Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2025-10-10T13:31:33Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=98f2ee1a36436bada54371eef656138d98dd40e0'/>
<id>urn:sha1:98f2ee1a36436bada54371eef656138d98dd40e0</id>
<content type='text'>
commit_hash:a6b640bc576263b62884a0b4187ba79c893e13d9
</content>
</entry>
<entry>
<title>YQL-20086 utils</title>
<updated>2025-10-06T08:53:26Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2025-10-06T08:26:09Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=60f45e69a4d7dbc6131208e16c45faf35aa5a985'/>
<id>urn:sha1:60f45e69a4d7dbc6131208e16c45faf35aa5a985</id>
<content type='text'>
init
commit_hash:54feccd520ebd0ab23612bc0cb830914dff9d0e8
</content>
</entry>
<entry>
<title>Moved yql/utils YQL-19206</title>
<updated>2024-11-01T12:55:52Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2024-11-01T12:41:40Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3325f745e67f7f442790822b5c9c5e9996708be7'/>
<id>urn:sha1:3325f745e67f7f442790822b5c9c5e9996708be7</id>
<content type='text'>
Также была выделена жирная зависимость из yql/utils в yql/utils/network, в результате library/cpp/getopt была добавлена явно в те проекты, которые ее ранее наследовали, а не указывали явно
commit_hash:36aa4c41f807b4cbbf70a3ed7ac0a1a5079bb75d
</content>
</entry>
</feed>
