Re: parallel restore vs. windows

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Andrew Chernow <ac(at)esilo(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: parallel restore vs. windows
Date: 2008-12-09 19:36:31
Message-ID: 493EC8BF.2090103@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Magnus Hagander 2008-12-09 19:44:15 Re: SSL BIO wrappers
Previous Message Alex Hunsaker 2008-12-09 19:32:35 Re: contrib/pg_stat_statements 1202