Andrew Chernow wrote:
Parts of AH need deep cloning, notably the formatData member, which
is done in _ReopenArchive().
Is it okay to clone this from within the thread?
I don't see why not.
Because another thread may be modifying the memory you are trying to
clone. If no one modifies the formatData struct, then why is it being
deep copied to begin with.
The program dies with a nasty dialog box when restoring a dump of the
regression database after the second COPY thread disconnects.
Sounds like the friendly and helpful GPF Dialog (General Protection
Fault). This is a core dump which strongly suggests your threads are
trampling over one another. Its possible that a couple threads get
fired off but upon the first thread completion, something
!(deep_copied) is freed/modified ... bang-bang your dead :o I tried
to find this, but haven't yet.
Maybe do a full deep copy in the main thread and comment out any
in-thread deep copying. I wonder if that would work with no other
changes.
I'll try. It's unfortunately not as simple as it sounds, because of the
way the abstractions are arranged. I can't count the number of times I
have had to stop and try to clear my head while working on this code.
Thanks for the suggestion.
cheers
andrew
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers