Can't synchronize xenial universe

Katello 3.12.2

If I try to synchronize xenial-universe (amd64 and i386) I get this result every time. Seems like I’ve hit some scalability limit. I’ll try to break them up into separate repos

PG::ProtocolViolation: ERROR: invalid message format
: SELECT “katello_debs”.“id” FROM “katello_debs” WHERE “katello_debs”.“pulp_id” IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66, $67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88, $89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99, $100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110, $111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121, $122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132, $133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143, $144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $154, $155, $156, $157, $158, $159, $160, $161, $162, $163, $164, $165, $166, $167, $168, $169, $170, $171, $172, $173, $174, $175, $176, $177, $178, $179, $180, $181, $182, $183, $184, $185, $186, $187, $188, $189, $190, $191, $192, $193, $194, $195, $196, $197, $198, $199, $200, $201, $202, $203, $204, $205, $206, $207, $208, $209, $210, $211, $212, $213, $214, $215, $216, $217, $218, $219, $220, $221, $222, $223, $224, $225, $226, $227, $228, $229, $230, $231, $232, $233, $234, $235, $236, $237, $238, $239, $240, $241, $242, $243, $244, $245, $246, $247, $248, $249, $250, $251, $252, $253, $254, $255, $256, $257, $258, $259, $260, $261, $262, $263, $264, $265, $266, $267, $268, $269, $270, $271, $272, $273, $274, $275, $276, $277, $278, $279, $280, $281, $282, $283, $284, $285, $286, $287, $288, $289, $290, $291, $292, $293, $294, $295, $296, $297, $298, $299, $300, $301, $302, $303, $304, $305, $306, $307, $308, $309, $310, $311, $312, $313, $314, $315, $316, $317, $318, $319, $320, $321, $322, $323, $324, $325, $326, $327, $328, $329, $330, $331, $332, $333, $334, $335, $336, $337,

$5709, $5710, $5711, $57288, $57289, $57290, $57291, $57292, $57293,$69699, $69700, $69701, $69702, $69703, $69704, $69705, $69706, $69707, $69708, $69709)

Might actually be that the query-instruction gets too long, assuming it tries to put all of the package-ids of universe (x2 because of two architectures) into a single SQL-query.
I think the most I have tested, yet, was Debian stable main amd64 (ca. 60k packages).

Do you have a ruby/rails stacktrace accompanying this PG-error?

You can see an example of the traceback here

Thanks, there seems to have been a problem in rails 5.2.1 ("where" statement with large array - regression in 5.2 and master · Issue #33702 · rails/rails · GitHub).
In short: rails always used prepared statements, which does not accept more than 65535 variables.
The error you posted suggest the query includes 69709 variables, which would be too much.
They solved it by not using prepared statements when the array length exceeds 65535.

tldr: please try again with rails 5.2.2 :wink:

The easy workaround is to sync i386 and amd64 as separate repositories.
Because rails 5.2.2 seems to not have reached the foreman-repositories, yet.