forked from fl00r/go-tarantool-1.6
-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DATA RACE #218
Labels
bug
Something isn't working
Comments
Thank you for the issue! It does not look like a critical problem. The data race should not cause a problem because the ping request does not use a schema. But in any case, we will try to fix it. |
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
Initial requests should not use a schema because it has not been loaded yet. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
We need to block shards to avoid schema usage by concurrent requests. Now it can be a ping request or a watch request so it does not look critical. We don't expect many of this requests and such requests do not use schema at all. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
We need to use an atomic method to read the atomic value. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
A use-case from our code: a response per AppendPush(). It looks like it's enough to change the test. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
We need to update an addresses slice under a lock because we use the slice in ConnectionMulti.getCurrentConnection(). Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
We need to use an atomic method to update the atomic value. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
You need to protect the poolWatcher.unregistered variable to avoid the data race. It does not look too critical because we don't expect that performance of poolWatcher.Unregister() is matter in cuncurrent calls case. It could also lead to crashes. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
It is better to use atomic counters. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
It is better to use atomic counters. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
Tests execution result may differ due to different timings, so it is better to test together, rather than instead. Closes #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
You need to protect the poolWatcher.unregistered variable to avoid the data race. It does not look too critical because we don't expect that performance of poolWatcher.Unregister() is matter in cuncurrent calls case. It could also lead to crashes. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
It is better to use atomic counters. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
It is better to use atomic counters. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 9, 2023
Tests execution result may differ due to different timings, so it is better to test together, rather than instead. Closes #218
3 tasks
oleg-jukovec
added a commit
that referenced
this issue
Jan 13, 2023
Initial requests should not use a schema because it has not been loaded yet. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 13, 2023
We need to block shards to avoid schema usage by concurrent requests. Now it can be a ping request or a watch request so it does not look critical. We don't expect many of this requests and such requests do not use schema at all. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 13, 2023
We need to use an atomic method to read the atomic value. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 13, 2023
A use-case from our code: a response per AppendPush(). It looks like it's enough to change the test. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 13, 2023
We need to update an addresses slice under a lock because we use the slice in ConnectionMulti.getCurrentConnection(). Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 13, 2023
We need to use an atomic method to update the atomic value. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 13, 2023
You need to protect the poolWatcher.unregistered variable to avoid the data race. It does not look too critical because we don't expect that performance of poolWatcher.Unregister() is matter in cuncurrent calls case. It could also lead to crashes. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 13, 2023
It is better to use atomic counters. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 13, 2023
It is better to use atomic counters. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 13, 2023
Tests execution result may differ due to different timings, so it is better to test together, rather than instead. Closes #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
A use-case from our code: a response per AppendPush(). It looks like it's enough to change the test. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
We need to update an addresses slice under a lock because we use the slice in ConnectionMulti.getCurrentConnection(). Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
We need to use an atomic method to update the atomic value. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
You need to protect the poolWatcher.unregistered variable to avoid the data race. It does not look too critical because we don't expect that performance of poolWatcher.Unregister() is matter in cuncurrent calls case. It could also lead to crashes. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
It is better to use atomic counters. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
It is better to use atomic counters. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
Tests execution result may differ due to different timings, so it is better to test together, rather than instead. Closes #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
Tests execution result may differ due to different timings, so it is better to test together, rather than instead. Closes #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
Tests execution result may differ due to different timings, so it is better to test together, rather than instead. Closes #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
Initial requests should not use a schema because it has not been loaded yet. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
We need to block shards to avoid schema usage by concurrent requests. Now it can be a ping request or a watch request so it does not look critical. We don't expect many of this requests and such requests do not use schema at all. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
We need to use an atomic method to read the atomic value. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
A use-case from our code: a response per AppendPush(). It looks like it's enough to change the test. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
We need to update an addresses slice under a lock because we use the slice in ConnectionMulti.getCurrentConnection(). Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
We need to use an atomic method to update the atomic value. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
You need to protect the poolWatcher.unregistered variable to avoid the data race. It does not look too critical because we don't expect that performance of poolWatcher.Unregister() is matter in cuncurrent calls case. It could also lead to crashes. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
It is better to use atomic counters. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
It is better to use atomic counters. Part of #218
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
oleg-jukovec
added a commit
that referenced
this issue
Jan 16, 2023
Tests execution result may differ due to different timings, so it is better to test together, rather than instead. Closes #218
oleg-jukovec
added a commit
that referenced
this issue
Mar 24, 2023
Overview The release adds pagination support and wrappers for for the crud module. Breaking changes There are no breaking changes in the release. New features Support pagination (#246). A Makefile target to test with race detector (#218). Support CRUD API (#108). An ability to replace a base network connection to a Tarantool instance (#265). Bugfixes Several non-critical data race issues (#218). ConnectionPool does not properly handle disconnection with Opts.Reconnect set (#272).
Merged
oleg-jukovec
added a commit
that referenced
this issue
Mar 24, 2023
Overview The release adds pagination support and wrappers for the crud module. Breaking changes There are no breaking changes in the release. New features Support pagination (#246). A Makefile target to test with race detector (#218). Support CRUD API (#108). An ability to replace a base network connection to a Tarantool instance (#265). Bugfixes Several non-critical data race issues (#218). ConnectionPool does not properly handle disconnection with Opts.Reconnect set (#272).
oleg-jukovec
added a commit
that referenced
this issue
Mar 24, 2023
Overview The release adds pagination support and wrappers for the crud module. Breaking changes There are no breaking changes in the release. New features Support pagination (#246). A Makefile target to test with race detector (#218). Support CRUD API (#108). An ability to replace a base network connection to a Tarantool instance (#265). Bugfixes Several non-critical data race issues (#218). Build on Apple M1 with OpenSSL (#260). ConnectionPool does not properly handle disconnection with Opts.Reconnect set (#272).
oleg-jukovec
added a commit
that referenced
this issue
Apr 27, 2023
Overview The release adds pagination support and wrappers for the crud module. Breaking changes There are no breaking changes in the release. New features Support pagination (#246). A Makefile target to test with race detector (#218). Support CRUD API (#108). An ability to replace a base network connection to a Tarantool instance (#265). Missed iterator constant (#285). Bugfixes Several non-critical data race issues (#218). Build on Apple M1 with OpenSSL (#260). ConnectionPool does not properly handle disconnection with Opts.Reconnect set (#272).
oleg-jukovec
added a commit
that referenced
this issue
May 18, 2023
Overview The release adds pagination support and wrappers for the crud module. Breaking changes There are no breaking changes in the release. New features Support pagination (#246). A Makefile target to test with race detector (#218). Support CRUD API (#108). An ability to replace a base network connection to a Tarantool instance (#265). Missed iterator constant (#285). Bugfixes Several non-critical data race issues (#218). Build on Apple M1 with OpenSSL (#260). ConnectionPool does not properly handle disconnection with Opts.Reconnect set (#272). Watcher events loss with a small per-request timeout (#284). Connect() panics on concurrent schema update (#278). Wrong Ttr setup by Queue.Cfg() (#278). Flaky queue/Example_connectionPool (#278). Flaky queue/Example_simpleQueueCustomMsgPack (#277). Other queue module version bumped to 1.3.0 (#278).
oleg-jukovec
added a commit
that referenced
this issue
May 18, 2023
Overview The release adds pagination support and wrappers for the crud module. Breaking changes There are no breaking changes in the release. New features Support pagination (#246). A Makefile target to test with race detector (#218). Support CRUD API (#108). An ability to replace a base network connection to a Tarantool instance (#265). Missed iterator constant (#285). Bugfixes Several non-critical data race issues (#218). Build on Apple M1 with OpenSSL (#260). ConnectionPool does not properly handle disconnection with Opts.Reconnect set (#272). Watcher events loss with a small per-request timeout (#284). Connect() panics on concurrent schema update (#278). Wrong Ttr setup by Queue.Cfg() (#278). Flaky queue/Example_connectionPool (#278). Flaky queue/Example_simpleQueueCustomMsgPack (#277). Other queue module version bumped to 1.3.0 (#278).
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
go: 1.19
tarantool: 1.10 / 2.10
Все запускается из докера
Использую базовый образ для приложения (acim/go-reflex)
При запуске приложения получаем WARNING: DATA RACE
Пример приложения(warning) и лог:
warning.zip
tnt.log
The text was updated successfully, but these errors were encountered: