Re: BUG #17518: Getting Error "new multixact has more than one updating member" when trying to delete records.
Dave Cramer <davecramer@postgres.rocks>
From: Dave Cramer <davecramer@postgres.rocks>
To: rkrier@cleo.com, pgsql-bugs@lists.postgresql.org
Date: 2022-06-25T23:15:14Z
Lists: pgsql-bugs
Sorry for the late reply.
Thiis has nothing to do with JDBC. The error is coming from the backend
https://github.com/postgres/postgres/blob/00377b9a02b89a831ae50e1c718d34565356698f/src/backend/access/transam/multixact.c#L803
Dave Cramer
www.postgres.rocks
On Tue, 14 Jun 2022 at 12:03, PG Bug reporting form <noreply@postgresql.org>
wrote:
> The following bug has been logged on the website:
>
> Bug reference: 17518
> Logged by: Bob Krier
> Email address: rkrier@cleo.com
> PostgreSQL version: 12.10
> Operating system: AWS RDS
> Description:
>
> We are getting an error executing a delete statement from JDBC like
> follows:
>
> DELETE FROM "EBI"."LOG_OF_CONNECTION" WHERE "DATE" < {some java date in
> milliseconds}. The error is as follows:
> ---> "SQLException: ERROR: new multixact has more than one updating
> member"
>
> I've searched the web for this particular error and was only able to find
> the source file
> "
> https://github.com/postgres/postgres/blob/master/src/backend/access/transam/multixact.c
> ",
> but I don't know the conditions that cause it. Is there any remedy to
> this?
>
>
> We have a table defined as follows:
> CREATE TABLE "LOG_OF_CONNECTION" (
> "ID" bpchar(32) NOT NULL,
> "TYPE" int4 NOT NULL,
> "STATUS" int4 NULL,
> "DATE" int8 NULL,
> "MARKED_FOR_PURGE" int2 NULL,
> "CONNECTION_DIRECTION" varchar(1) NULL,
> "TARGET_DBP" bpchar(32) NULL,
> "ENDPOINT_ID" bpchar(32) NULL,
> "METHOD_MESSAGES" bytea NULL,
> "PERSISTENT_STORAGE_REQUESTED" int4 NULL,
> "PROCESS_USER_REF" int8 NULL,
> "CONNECTION_NUMBER" int4 NULL,
> "NOTIFICATION_TYPE" varchar(256) NULL,
> "TIME_SENT" int8 NULL,
> "CALC_RETURN_TIME" int8 NULL,
> "TIME_RECEIVED" int8 NULL,
> "IS_PROCESSED" int4 NOT NULL DEFAULT 0,
> "ENDPOINT_NAME" varchar(1024) NULL,
> "TRADING_PARTNER_ID" varchar(1024) NULL,
> "TRANSFER_ID" varchar(1024) NULL,
> "LOG_ORIGIN_OBJECT" varchar(1024) NULL,
> CONSTRAINT "LOG_OF_CONN_PK" PRIMARY KEY ("ID", "TYPE")
> );
> CREATE INDEX by_date_log_of_connection ON "EBI"."LOG_OF_CONNECTION" USING
> btree ("DATE", "ID");
> CREATE INDEX by_status_date_id3 ON "EBI"."LOG_OF_CONNECTION" USING btree
> ("ID", "TYPE", "STATUS", "DATE" DESC);
> CREATE INDEX edi_late_ack_log_of_connection ON "EBI"."LOG_OF_CONNECTION"
> USING btree ("ID");
>
>
Commits
-
Make multixact error message more explicit
- f63f29733e2f 15.2 landed
- de95928ea071 12.14 landed
- b20e38142208 11.19 landed
- 8e7c86785a11 14.7 landed
- 5a185246f9a7 13.10 landed
- 2cf41cd30997 16.0 landed
-
CREATE INDEX: use the original userid for more ACL checks.
- 00377b9a02b8 15.0 cited