[Bucardo-general] Bucardo version 4.4.6 on Centos 4.7, Postgres 9.0.2 appears to be broken working on a very large bucardo_delta file.
Brady S Edwards
brady.s.edwards at seagate.com
Tue Nov 8 14:04:54 UTC 2011
The few tables prior to this one that have varchar or varchar|varchar
pkeytype's seem to process fine.
Perhaps if the first column is an int, the rest are assumed to be as well.
On Tue, Nov 8, 2011 at 6:54 AM, Brady S Edwards <brady.s.edwards at seagate.com
> Table: public.devices DB: cqlco PK: test_id|serial_number (int8|varchar)
> Belongs to herds: cqlco_sg
> Belongs to syncs: sync_cqlco_sg
> analyze_after_copy = 1
> cdate = 2011-05-17 06:25:19.705636-06
> customselect = NULL
> db = cqlco
> delta_bypass = 0
> delta_bypass_count = NULL
> delta_bypass_min = NULL
> delta_bypass_percent = NULL
> ghost = 0
> has_delta = 0
> id = 23
> makedelta = NULL
> ping = NULL
> pk = test_id|serial_number (int8|varchar)
> pkey = test_id|serial_number
> pkeytype = int8|varchar
> qpkey = test_id|serial_number
> rebuild_index = 0
> reltype = table
> schemaname = public
> standard_conflict = source
> strict_checking = 1
> tablename = devices
> The test_id column is a bigint in the database, but is listed as an int8,
> smallint's are listed as int2. Is that a problem.
> Querying the goat table says the same thing.
> From looking at the log file, it looks like it
> On Mon, Nov 7, 2011 at 8:37 PM, Greg Sabino Mullane <greg at endpoint.com>wrote:
>> On Mon, Nov 07, 2011 at 04:29:36PM -0700, Brady S Edwards wrote:
>> > Everything was fine until a large update ~300,000 rows.
>> > Since then, seems like Bucardo can't quite process all of the rows
>> > encountering an error and rolling everything back.
>> The error has nothing to do with the number of rows, but the failure
>> to quote a non-numeric field:
>> > LINE 1: ...vices WHERE (test_id,serial_number) IN
>> > ((8526717,S2U4J9KBA0...
>> That should be ((8526717,'S2U4J9KBA0'...
>> Could be a bug, but the first thing to do is to check what Bucardo
>> thinks is the column type for the serial_number column in that
>> table. Try from the command line:
>> bucardo_ctl list table foobar -verbose -verbose
>> There should be a pkeytype line there. If that doesn't work, query
>> the bucardo database directly with:
>> SELECT * FROM goat WHERE tablename = 'foobar';
>> Either way, it should be reporting the first as an int, and the second
>> as something else, probably text. If it's an int, change it and see if
>> that fixes it. If it's already an int, let us know.
>> Greg Sabino Mullane greg at endpoint.com
>> End Point Corporation
>> PGP Key: 0x14964AC8
> Brady Edwards
> (720) 684-2984
> Seagate Technology
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Bucardo-general