Re: parallel restore vs. windows - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: parallel restore vs. windows
Date
Msg-id 493EC8BF.2090103@dunslane.net
Whole thread Raw
In response to Re: parallel restore vs. windows  (Andrew Chernow <ac@esilo.com>)
Responses Re: parallel restore vs. windows
List pgsql-hackers

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


pgsql-hackers by date:

Previous
From: "Alex Hunsaker"
Date:
Subject: Re: contrib/pg_stat_statements 1202
Next
From: "Jaime Casanova"
Date:
Subject: Re: Quick patch: Display sequence owner