Re: parallel restore vs. windows
Andrew Chernow <ac@esilo.com>
From: Andrew Chernow <ac@esilo.com>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2008-12-09T18:50:27Z
Lists: pgsql-hackers
>>> >>> 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. -- Andrew Chernow eSilo, LLC every bit counts http://www.esilo.com/