From: | Christian Ullrich <chris(at)chrullrich(dot)net> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Buildfarm failures on woodlouse (in ecpg-check) |
Date: | 2017-06-11 15:33:01 |
Message-ID: | ohjnr7$8n0$1@blaine.gmane.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hello,
my buildfarm animal woodlouse (Visual Studio 2013 on Windows 7) stopped
working correctly some months ago. After Tom kindly prodded me into
fixing it, I noticed that I had configured it to skip the ecpg-check
step because one of the tests in the "thread" section (not always the
same) nearly always failed.
I had set it up in circa 2015, so I reenabled the step to see whether
anything had changed since, and it started failing again.
Through some trial and error, and with the help of Microsoft's
Application Verifier tool, I found what I think is the cause: It looks
like the VS 2013 CRT's setlocale() function is not entirely thread-safe;
the heap debugging options make it crash when manipulating per-thread
locale state, and according to the comments surrounding that spot in the
CRT source, the developers were aware the code is fragile.
I crudely hacked a critical section around the setlocale() call in
pgwin32_setlocale(). After this change, the test does not crash, while
without it, it crashes every time.
If there is interest in fixing this issue that is apparently limited to
VS 2013, I will try and produce a proper patch. I notice, however, that
there is a pthread compatibility layer available that I have no
experience with at all, and I assume using it is preferred over straight
Win32?
My hack is attached; please feel free to tell me I'm on the wrong track.
To build correctly, it requires defining _WIN32_WINNT to be 0x600 or
above (and using an SDK that knows about InitOnceExecuteOnce()).
--
Christian
Attachment | Content-Type | Size |
---|---|---|
setlocale.diff | text/plain | 1.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Joe Conway | 2017-06-11 15:52:55 | Re: BUG #14682: row level security not work with partitioned table |
Previous Message | Dean Rasheed | 2017-06-11 11:32:48 | PG10 Partitioned tables and relation_is_updatable() |