Azat Khuzhin
|
f342acc2ad
|
Guard UDF container with a lock
Fixes TSAN report [1]:
WARNING: ThreadSanitizer: data race (pid=436)
Write of size 8 at 0x7b040076e450 by thread T240:
...
3 DB::UserDefinedFunctionFactory::registerFunction() obj-x86_64-linux-gnu/../src/Interpreters/UserDefinedFunctionFactory.cpp:30:56 (clickhouse+0x1500727f)
4 DB::InterpreterCreateFunctionQuery::execute() obj-x86_64-linux-gnu/../src/Interpreters/InterpreterCreateFunctionQuery.cpp:37:44 (clickhouse+0x14b1224a)
5 DB::executeQueryImpl() obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:573:32 (clickhouse+0x15039241)
6 DB::executeQuery() obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:934:30 (clickhouse+0x150376fa)
7 DB::TCPHandler::runImpl() obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:291:24 (clickhouse+0x15a7af2a)
Previous read of size 8 at 0x7b040076e450 by thread T1370:
...
2 DB::UserDefinedFunctionFactory::tryGet() const obj-x86_64-linux-gnu/../src/Interpreters/UserDefinedFunctionFactory.cpp:65:45 (clickhouse+0x150078a4)
3 DB::UserDefinedFunctionsMatcher::tryToReplaceFunction() obj-x86_64-linux-gnu/../src/Interpreters/UserDefinedFunctionsVisitor.cpp:39:73 (clickhouse+0x15007cd0)
4 DB::UserDefinedFunctionsMatcher::visit() obj-x86_64-linux-gnu/../src/Interpreters/UserDefinedFunctionsVisitor.cpp:27:19 (clickhouse+0x15007ba8)
5 DB::InDepthNodeVisitor<>::visit() obj-x86_64-linux-gnu/../src/Interpreters/InDepthNodeVisitor.h:34:13 (clickhouse+0x14fbcba4)
..
24 DB::executeQueryImpl() obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:543:28 (clickhouse+0x15038f3b)
[1]: https://clickhouse-test-reports.s3.yandex.net/0/df1fe27791f82c2a917390faa30716effbd32b8f/stress_test_(thread).html#fail1
|
2021-08-27 00:39:11 +03:00 |
|