Обсуждение: BUG #16254: SQL raises error dsa_allocate could not find 4 free pages
BUG #16254: SQL raises error dsa_allocate could not find 4 free pages
От
PG Bug reporting form
Дата:
The following bug has been logged on the website: Bug reference: 16254 Logged by: Алексей Божков Email address: smartyru@gmail.com PostgreSQL version: 10.5 Operating system: CentOS Linux release 7.5.1804 (Core) Description: After refactoring of a SQL query during run of new version of the query given below select count( distinct case when proc_error_cd = '000' then 'ok@' end || muid || '@' || email ), count( distinct case when proc_error_cd = '000' then null else 'err@' end || muid || '@' || email ) into v_in_cnt, v_in_cnt_err from cb.T co where check_dt_msk between v_check_dt_min and v_check_dt_max and cashback <> 0 and calc_batch_id = any(v_calc_batch_id_ar) and muid = any (v_muid_ar); where v_muid_ar, v_calc_batch_id_ar - are arrays of (183 and 4167 scalar elements populated below) select array_agg(distinct muid) into v_muid_ar from cb.rsp_tst where txncode in ('29', '18') and tsid::int = v_tsid; select array_agg(distinct calc_batch_id) into v_calc_batch_id_ar from cbf.calc_batch_dt_range where batch_group_id = v_tsid; I got error dsa_allocate could not find 4 free pages Old version of query runs without errors: select count( distinct case when proc_error_cd = '000' then 'ok@' end || muid || '@' || email ), count( distinct case when proc_error_cd = '000' then null else 'err@' end || muid || '@' || email ) into v_in_cnt, v_in_cnt_err from cb.T co, cbf.calc_batch_dt_range rn where 1=1 and check_dt_msk between v_check_dt_min and v_check_dt_max and cashback <> 0 and co.calc_batch_id = rn.calc_batch_id and batch_group_id = v_tsid and muid in ( select unnest ( v_muid_ar ) ); cb.T is a view of a few mln rows
On Wed, Feb 12, 2020 at 1:35 AM PG Bug reporting form <noreply@postgresql.org> wrote: > PostgreSQL version: 10.5 > I got error dsa_allocate could not find 4 free pages Hi Алексей, This matches the symptoms of a bug fixed in 10.8. The current 10.x release is 10.11 (10.12 will be in package repositories soon). https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=7215efdc005e694ec93678a6203dbfc714d12809 https://www.postgresql.org/message-id/flat/CAMAYy4%2Bw3NTBM5JLWFi8twhWK4%3Dk_5L4nV5%2BbYDSPu8r4b97Zg%40mail.gmail.com