The following bug has been logged on the website:
Bug reference: 14902
Logged by: Pavel Bazika
Email address: pavel.bazika@kocovnici.cz
PostgreSQL version: 10.1
Operating system: Arch Linux
Description:
Hi,
I'm testing my application with helgrind threading error detection tool
(part of valgrind) and it reports a problem in libpq, when I'm calling
PQconnectdb from two threads:
==25830== Possible data race during write of size 4 at 0x7D600CC by thread
#1
==25830== Locks held: none
==25830== at 0x7B2CFE4: pqSaveParameterStatus (fe-exec.c:1022)
==25830== by 0x7B35A01: getParameterStatus (fe-protocol3.c:1378)
==25830== by 0x7B36E77: pqParseInput3 (fe-protocol3.c:265)
==25830== by 0x7B2DD7D: PQisBusy (fe-exec.c:1738)
==25830== by 0x7B274D6: PQconnectPoll (fe-connect.c:2909)
==25830== by 0x7B2829D: connectDBComplete.part.9 (fe-connect.c:1931)
==25830== by 0x7B2B31F: connectDBComplete (fe-connect.c:589)
==25830==
==25830== This conflicts with a previous write of size 4 by thread #4
==25830== Locks held: none
==25830== at 0x7B2CFE4: pqSaveParameterStatus (fe-exec.c:1022)
==25830== by 0x7B35A01: getParameterStatus (fe-protocol3.c:1378)
==25830== by 0x7B36E77: pqParseInput3 (fe-protocol3.c:265)
==25830== by 0x7B2DD7D: PQisBusy (fe-exec.c:1738)
==25830== by 0x7B274D6: PQconnectPoll (fe-connect.c:2909)
==25830== by 0x7B2829D: connectDBComplete.part.9 (fe-connect.c:1931)
==25830== by 0x7B2B31F: connectDBComplete (fe-connect.c:589)
==25830== by 0x7B2B31F: PQconnectdb (fe-connect.c:590)
and
==25830== Possible data race during write of size 1 at 0x7D600C8 by thread
#1
==25830== Locks held: none
==25830== at 0x7B2CFC3: pqSaveParameterStatus (fe-exec.c:1027)
==25830== by 0x7B35A01: getParameterStatus (fe-protocol3.c:1378)
==25830== by 0x7B36E77: pqParseInput3 (fe-protocol3.c:265)
==25830== by 0x7B2DD7D: PQisBusy (fe-exec.c:1738)
==25830== by 0x7B274D6: PQconnectPoll (fe-connect.c:2909)
==25830== by 0x7B2829D: connectDBComplete.part.9 (fe-connect.c:1931)
==25830== by 0x7B2B31F: connectDBComplete (fe-connect.c:589)
==25830== by 0x7B2B31F: PQconnectdb (fe-connect.c:590)
==25830==
==25830== This conflicts with a previous write of size 1 by thread #4
==25830== Locks held: none
==25830== at 0x7B2CFC3: pqSaveParameterStatus (fe-exec.c:1027)
==25830== by 0x7B35A01: getParameterStatus (fe-protocol3.c:1378)
==25830== by 0x7B36E77: pqParseInput3 (fe-protocol3.c:265)
==25830== by 0x7B2DD7D: PQisBusy (fe-exec.c:1738)
==25830== by 0x7B274D6: PQconnectPoll (fe-connect.c:2909)
==25830== by 0x7B2829D: connectDBComplete.part.9 (fe-connect.c:1931)
==25830== by 0x7B2B31F: connectDBComplete (fe-connect.c:589)
==25830== by 0x7B2B31F: PQconnectdb (fe-connect.c:590)
Is this false positive, bug or am I doing something wrong? The problem
occurrs when those static variables are written in fe-exex.c.
Thanks
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs