토토 커뮤니티 주간 뉴스 -2021 년 11 월 14 일

게시2021-11-15by pwn
PWN

토토 커뮤니티 주간 뉴스 -2021 년 11 월 14 일

토토 커뮤니티 14.1, 13.5, 12.9, 11.14, 10.19 및 9.6.24토토 커뮤니티 사이트 추천 : 토토 커뮤니티 사이트 추천 14.1, 13.5, 12.9, 11.14, 10.19 및 9.6.24 release!. 이것은 9.6 시리즈의 최종 릴리스이므로 업그레이드 계획을 당신이 아직하지 않은 경우 행동.

토토 커뮤니티 제품 뉴스

PGPOOL-II 4.3 BETA1 연결 풀러 및 명령문 복제 시스템 토토 커뮤니티,릴리스

토토 커뮤니티의 다중 스레드 연결 풀러 인 Odyssey 1.2. https://github.com/yandex/odyssey/releases

pgbouncer 1.16.1, Connection Pooler 등 토토 커뮤니티,릴리스

11 월 토토 커뮤니티 작업

https : //archives.토토 커뮤니티.org/pgsql-jobs/2021-11/

뉴스의 토토 커뮤니티

Planet 토토 커뮤니티 :https : //planet.토토 커뮤니티.org/

토토 커뮤니티 주간 뉴스가 이번 주 David Fetter에 의해옵니다

일요일 오후 3시에 PST8pdt로 David@fetter.org.

응용 패치

David Rowley가 추진 :

Tom Lane 추진 :

  • SSL 또는 GSS 암호화 핸드 셰이크 후 외부 데이터를 거부하십시오. 서버 클라이언트의 데이터를 읽을 때마다 데이터 버퍼로드를 수집합니다. 소켓. 시작 중에 SSL 또는 GSS 암호화가 요청되면 초기 요청 메시지가 포함 된 추가 데이터는 버퍼 및 암호화 후에 이미 결정된 데이터로 취급됩니다. 핸드 셰이크가 완료되었습니다. 따라서 데이터를 주입하는 능력이있는 중간의 사람 TCP 연결로 아마도 암호화로 보호 된 데이터베이스 세션. 이것은 남용 될 수 있습니다 가짜 SQL 명령을 서버로 보내지 만 서버는 인증 데이터를 요구하지 않았습니다. (그러나 서버가 의존합니다 SSL 인증서 인증은 그렇게하지 않을 수 있습니다.) 수정하려면 프로토콜-폭력 오류 내부 버퍼가 비어 있지 않은 경우 암호화 악수. 이것을보고 한 Jacob Champion에게 감사드립니다 문제. 보안 : CVE-2021-23214https : //git.토토 커뮤니티.org/pg/commitdiff/28E2412554154483093819EFAE9BCA603441951

  • LIBPQ : SSL 또는 GSS 암호화 핸드 셰이크 후 외부 데이터를 거부하십시오. libpq 소켓에서 데이터를 읽을 때마다 데이터 버퍼로드를 수집합니다. 시작 중에 SSL 또는 GSS 암호화가 요청되면 추가 데이터 서버의 예 또는 아니오 회신으로 수신 된 버퍼에 남아 있습니다. 암호화 핸드 셰이크가 완료되면 이미 결정된 데이터로 취급됩니다. 따라서 TCP에 데이터를 주입 할 수있는 능력이있는 중간의 사람 연결은 아마도 명확한 텍스트 데이터를 시작할 수 있습니다. 암호화로 보호 된 데이터베이스 세션. 이것은 아마도 남용 될 수 있습니다 다른 비록 고객의 첫 몇 가지 쿼리에 가짜 응답을 주입합니다. libpq의 행동에 대한 세부 사항은 소리보다 어렵게 만듭니다. 다른 줄 공격의 세션 초반에 발송 될 수 있습니다. 그것은 a CVE-2021-23214에 취약한 서버. 수정하려면 프로토콜-폭력 오류를 던지십시오 암호화 핸드 셰이크 후 내부 버퍼가 비어 있지 않은 경우. 우리의 이 문제를보고 한 Jacob Champion에게 감사드립니다. 보안 : CVE-2021-23222https : //git.토토 커뮤니티.org/pg/commitdiff/160258802d10b0600d7671bbea55d8e17d45

  • 잘못된 형식 자리 표시 자 수정. BuildFarm 경고 당.https : //git.토토 커뮤니티.org/pg/commitdiff/b0cf5444f9a8d915b2e9b44790025f17a7dc107f

  • 026_overwrite_contrecord.pl 테스트에서 불안정성을 고정합니다. 우리는 간헐적으로 보았습니다 이 테스트에서 느린 빌드 팜 머신에 대한 실패, Autovacuum이 일부 추가 WAL을 방출한다고 가정함으로써 설명합니다. 장애를 입히다 그것을 안정화시키는 autovacuum. 통과 할 때 숫자 비교가 아닌 StringWise를 사용하십시오 WAL 파일 이름을 비교합니다. 현재는 중요하지 않지만 16 진수입니다 소수점이 아닌 현악기 ... 토론 :https : //postgr.es/m/1372189.1636499287@sss.pgh.pa.us https : //git.토토 커뮤니티.org/pg/commitdiff/b66767b56b1cd082f3499a7e5a21b480dd004f51

  • DOC : 논리적 복제 유형 메시지의 프로토콜 사양을 향상시킵니다. Protocol.sgml은 유형 메시지의 레이아웃을 문서화했지만 완전히 삭제했습니다. 그렇지 않으면 공은 그들이 좋은 것. 그것에있는 동안, 약간의 사본 편집을하십시오 관계 메시지에 대한 설명. 통과하면 주석을 조정하십시오 apply_handle_type ()는 우리가 할 때 아무것도하지 않기로 선택한다는 것을 명확하게하기 위해 유형 메시지를받는 것은 전혀 사용하지 않는다고 생각하지 않습니다. 당 Stefen Hillman의 질문. 논의:https : //postgr.es/m/capgw8pmknk5pup6=t4a_ug=cz80rgp=konqjmtdhfazb0rvnfg@mail.gmail.com https : //git.토토 커뮤니티.org/pg/commitdiff/c3b3333698cf88550b017620f73b94b53029897f39

  • SOCKLEN_T를 위해 int가 아닌 서명되지 않은 int로 돌아갑니다. 동전 던지기입니다 이것들은 더 나은 기본 가정입니다. 그러나 우리가 가진 기계 중 BuildFarm, Fallback Socklen_T 정의에 의존하는 유일한 사람은 다음과 같습니다. 고대 HPUX, 그리고 그 플랫폼에서 서명되지 않은 INT가 올바른 선택입니다. 미성년자 EE3A1A5B6으로 조정합니다. 논의:https : //postgr.es/m/1440792.1636558888@sss.pgh.pa.us https : //git.토토 커뮤니티.org/pg/commitdiff/01ec41a5fe4aa590dde18a2c551432aa1925caea

  • Postgres_FDW : 제한된 경우 상수에 대한 캐스트를 억제합니다. an "remote_var op constant"형식의 표현, 우리는 일반적으로 캐스트를 원격 파서가 같은 유형이라고 생각하는지 확인하기위한 상수 우리는합니다. 그러나 그렇게하는 경우가 종종 필요하지 않으며 사용자는 의도적으로 로컬 칼럼을 다른 것으로 선언했습니다. 원격 열보다 유형. 그럴듯한 사용 사례는 텍스트를 사용하는 것입니다 원격쪽에 열거 된 유형을 나타냅니다. 그러한 비교 열이 "var = 'foo':: text"로 배송됩니다. Enum = 텍스트 연산자가 없기 때문에 측면. 그러나 우리가 단순히 떠나면 명백한 캐스트, 비교는 사용자가 원하는 것을 정확하게 수행합니다. 그것은 의미 론적 문제의 큰 위험 없이이 작업을 수행 할 수 있습니다. "연산자의 한 피연산자가 유형이라면"오랫동안 파서 휴리스틱 알 수 없음, 다른 하나는 알려지지 않은 피연산자라고 가정합니다. 또한 그 유형의 것 "입니다. 따라서이 패치는 (a) 작업자 입력은 로컬에서 동일한 유형을 갖습니다. (b) 상수는 a로 인쇄됩니다 문자열 리터럴 또는 널, 둘 다 처음에는 유형으로 알려지지 않은 것으로 간주됩니다. 그리고 (c) 비 콘스트 입력은 평범한 외국 var입니다. 규칙 (c) 원격 파서는 비 공동 입력의 유형을 알고 있습니다. 또한, 그것은 의미합니다 이 캐스트가 제시되면 의미 론적 놀라움을 일으킨다면 로컬 열이 원격과 다른 유형을 가진 경우 발생합니다. 열. 어쨌든 그것은 작동하지 않았 으며이 패치는 그러한 경우에 순간 유용성 이득을 나타냅니다. 내가 (tgl) 남아있는 한 가지 요점 약간 불편 함은 우리가 암시 적 relabeltype를 무시할 것이라는 점입니다. 비 초보 입력이 평범한 var인지 결정할 때. 그것은 조금 만듭니다 리모컨이 Const를 동일하게 해결해야한다고 주장하는 것은 squishy 우리의 const는 var와 같은 유형이 아니기 때문에 Var로 입력하십시오. 그러나 우리가 그렇게하지 않으면,이 핵은 사용자가 원하는대로 작동하지 않습니다. 원격 열을 나타 내기 위해 텍스트 대신 varchar를 사용하기로 선택합니다. 저것 유용한 것 같습니다. 지금은 이렇게하십시오. 우리는 포기해야 할 수도 있습니다 문제가있는 경우 relabeltype-inignoring 비트. Dian Fay, 검토 및 Kibitzing by Me 토론 :https : //postgr.es/m/c9lu294v7k4f.34lrrdu449o45@lamia https : //git.토토 커뮤니티.org/pg/commitdiff/f8abb0f5e114d8c309239f0faa277b97f696d829

  • PQUSER (CONN)가 아닌 PSQL의 \ Password 기본값을 current_user로 기본적으로 만듭니다. 그만큼 문서화는 \ password가 "현재 사용자"에 작용한다고 분명히 말합니다. 기본. 실제로 행동했거나 시도한 것은 사용자 이름이 로그에 사용되었습니다. 현재 세션으로. 그 이후로 한 경우와 같은 일이 아닙니다. 역할 또는 세션 인증을 설정합니다. 가능한 놀라움 외에 요소, 현재 역할에 원래 역할의 비밀번호를 설정하십시오. 수정하려면 "current_user를 선택하십시오"를 사용하십시오 역할 이름을 행동하십시오. (이 구문은 최소한 서버와 함께 작동합니다 7.0.) 또한 혼란을 줄이기 위해 비밀번호 프롬프트에서 행동하십시오. 문서의 불일치 이것을 버그로 만듭니다. 나에 의한 패치; 검토 해 주신 Nathan Bossart에게 감사드립니다. 논의:https : //postgr.es/m/747443.1635536754@sss.pgh.pa.us https : //git.토토 커뮤니티.org/pg/commitdiff/d6eb5a0c258d3da5471814bcc6ed6498129fee16

Robert Haas 추진 :

  • 말지 않은 타르 아카이브 문제에 대한 최소 수정. 저지르다 23a1c6578c87fca0e361c4f5f9a07df5ae1f9858 개선 된 pg_basebackup의 능력 Tar Archives를 구문 분석하지만 우리가 만들 필요가있을 때만 구문 분석하기 위해 준비했습니다. 아카이브의 내용에 대한 일부 수정. 그것은 문제입니다. 왜냐하면 서버는 실제로 타르 아카이브를 종료하지 않습니다. 새로운 구문 분석 논리 일 때 PG_BASEBACKUP이 TAR 파일을 올바르게 종료 할 것이지만 건너 뛰었습니다. PG_BASEBACKUP은 서버에서 얻은 모든 것을 작성했습니다. 터미네이터가 누락되었음을 의미합니다. 대부분의 TAR 버전은 기꺼이합니다 누락 된 터미네이터를 간과했지만 AIX 빌드 팩 동물은 그렇지 않았습니다. 고치다 터미네이터를 맹목적으로 추가하는 새로운 종류의 BBStreamer를 발명함으로써 타르 아카이브를 구문 분석하지 않을 때마다 사용합니다. 논의:http : //postgr.es/m/ca+tgmozbnzswwm4be5jb_qhncy817dyzwgf+2-7hkmq27zwsmq@mail.gmail.com https : //git.토토 커뮤니티.org/pg/commitdiff/57b5a9646d97a3e8a5b6b6d86b375cccccccccccccc

  • 서버가 타르 아카이브를 제대로 종료하도록하십시오. 이전 버전 토토 커뮤니티은 TAR을 편집하려는 PG_BASEBACKUP 버전을 특징으로했습니다. 아카이브이지만 너무 멍청하여 제대로 구문 분석하기에는 바보였습니다. 서버는 물건을 만들었습니다 제로 바이트의 두 블록을 추가하지 않아 클라이언트가 더 쉽게 TAR 파일을 끝내고 클라이언트에게 맡겨서 그렇게해야합니다. 그러나 그 이후로 Commit 23A1C6578C87FCA0E361C4F5F9A07DF5AE1F9858,이 해킹이 필요하지 않습니다 더욱 그들은 제대로 종료됩니다! 따라서 서버를 항상 올바르게 변경하십시오 타르 파일을 종료하십시오. PG_BASEBACKUP의 구형 버전은 New와 대화 할 수 없습니다 어쨌든 서버이므로 호환성 중단이 없습니다. pg_basebackup 측면에서 우리가 말하면 종료 제로 바이트를 추가해야합니다. 이전 서버이지만 서버가 v15+일 때는 아닙니다. 바라건대 어느 시점에서 우리는 우리가 이 호환성 중 일부를 제거 할 수 있지만 매달리는 것이 가장 좋습니다. 지금은. 통과하면 파일 헤더 주석을 bbstreamer_tar.c에 추가하십시오. 여기서 무슨 일이 일어나고 있는지 더 명확하게하기 위해. 논의:http : //postgr.es/m/ca+tgmozbnzswwm4be5jb_qhncy817dyzwgf+2-7hkmq27zwsmq@mail.gmail.com https : //git.토토 커뮤니티.org/pg/commitdiff/5a1007a5088cd6ddf892f7422ea8dbaef362372f

  • 'ThistimelineId'의 더 많은 정리. xlogctldata에서 구조 멤버의 이름을 바꿉니다 ThistimelineId는 TimeLineId를 삽입하고 주석을 업데이트하여 다음을 명확히합니다. 회복이 완료된 후에 만 ​​설정 될 것으로 예상됩니다. startupxlog에서 로컬 변수 교체이 thistimelineid 및 prevtimelineid를 새로운 로컬로 교체 변수는 Replaytli 및 Newtli. 오래된 계획 에서이 티티 라인 리드는 우리가 새로운 타임 라인을 만들 때까지 TLI를 재생하고 그 후 재생 tli는 prevtimelineid에서. 이제 Replaytli는 우리가 마지막으로 재생 된 TLI입니다. 전체 기능에 걸쳐, Newtli는 그 또는 새로운 타임 라인입니다. 프로모션시 작성되었습니다. 의견에서 오도 한 의견을 제거하십시오 회복 targettimelinegooal과 친구가 선언되는 곳 바로 위의 차단. 변수 로서의이 티티 라인 드이기 때문에 이제는 잘못되었습니다. RMGR 코드 가이 TimeLineId에 신경 쓰지 않기 때문에 페이지 헤더의 TLI 필드가 예전이 아니었던 것은 용도 변경되지 않았습니다. 페이지 체크섬을 저장합니다. getflushrecptr 주석을 추가하십시오 정상적인 달리기에 사용되어야하며 이것이 그래서. Michael Paquier와 내 자신의 일부 아이디어에 따라. Michael의 검토 Paquier. 논의:http : //postgr.es/m/ca+tgmoy1a2d1anvr3tjckmggkhj7ggrwinwjtkr21dxoulbzcq@mail.gmail.com https : //git.토토 커뮤니티.org/pg/commitdiff/a27048cbcb582056bfbf15aa2f898b4a3ec74304

  • Basebackup.c의 주장에서 Thinko를 수정하십시오. 저지르다 5A1007A5088CD6DDF892F742222ADBAEF362372F는 그 주장을 소개하려고 시도했습니다 블록 크기는 타르 블록 크기의 두 배 이상 이었지만 수학을 받았습니다. 잘못된. 내 오류는 나에게 오프리스트에게보고되었습니다.https : //git.토토 커뮤니티.org/pg/commitdiff/10eae82b27cebbb9586cda8baf8e3226496891d0

  • 많은 상태 파일로 pgarch_readyxlog ()의 성능 향상. 현재, Archive_status 디렉토리는 각 파일에 대해 스캔되었습니다. 있을 때 Archive_Command가 오랫동안 실패했기 때문에 많은 상태 파일입니다. 시간,이 디렉토리 스캔은 매우 느려질 수 있습니다. 이 변화로 아카이버 각 디렉토리 스캔 중에 아카이브 할 여러 파일을 기억하고 속도 위로. 타임 라인 히스토리 파일을 최대한 빨리 보관할 수 있도록 xlogarchivenotify ()는 아카이버가 새 디렉토리 스캔을 마치도록 강요합니다. 하나에 대한 .ready 파일이 작성되었습니다. Nathan Bossart, 긴 토론에 따라 많은 사람들과 관련이 있습니다. 그 사람이 누구라도 정확히 나에게 분명하지 않습니다. 사람들은이 특정 패치를 검토했습니다. 논의:http : //postgr.es/m/ca+tgmobhabs2yabtutrkjtq_kkc80-berjw=pfffffpoj7+gabqbw@mail.gmail.com토론 :http : //postgr.es/620f3ce1-0255-4d66-9d87-0eade866985a@amazon.com https : //git.토토 커뮤니티.org/pg/commitdiff/beb4e9ba1652a04f66ff2026144d06f678c0b2d

Amit Kapila 추진 :

  • rel 대신 테이블을 사용할 열거적인 이름을 바꿉니다. Commit 5A2832465F 도입 스키마 간행물의 모든 테이블을 나타내는 일부 열거 및 rel 그들의 이름. 혼란을 피하기 위해 열거에서 Rel 대신 테이블을 사용하십시오. 미래에 출판물의 일부가 될 수있는 시퀀스와 같은 다른 객체. 통과에서 (a) 새로 소개 된 오류 메시지 중 하나를 변경합니다. 명령 작성 및 변경에 일관성이 있습니다. (b) 중 하나에 누락 된 별칭 추가 관련 간행물을 인쇄하는 데 사용되는 SQL 문 테이블. 보고서 : Tomas Vondra, Peter Smith 저자 : Vignesh C 검토 바이 : Hou Zhijie, Peter Smith 토론 :/message-id/caldanm0oanxuj6rxqwzsm1msy4s19nuh3734j4a72etdwvetq%40mail.gmail.com https : //git.토토 커뮤니티.org/pg/commitdiff/b3812d0b9bcf00e8478186fc287940e17912248a

Fujii Masao 추진 :

Michaël Paquier 추진 :

  • 일관성을 위해 "procsignal"이라는 용어를 사용하여 몇 가지 주석을 만듭니다. 주변 ProcSignal.c에서 "ProcSignal"보다는 "ProcSignal"을 사용하는 것을 선호합니다. 작가: Bharath Rupireddy 토론 :https : //postgr.es/m/calj2acx99ghpmm1m_o4g+ysxfjcn=qf7pedxntlwmpht_gdg@mail.gmail.com https : //git.토토 커뮤니티.org/pg/commitdiff/4cd046c203bbca2955182f78ebc06e831ffdbb1

  • xlogreadRecord ()의 일부 발신자에 대한 오류 메시지를 향상시킵니다. 몇 개의 코드 논리 디코딩 (WAL Sender, 슬롯 진행 등)과 관련된 경로 xlogreadrecord (), walreader.c에서 생성 된 오류 메시지를 a. 실패. 모든 메시지는 컨텍스트가 없으므로 발견하기가 더 어려워집니다. 이런 일이 일어나지 않아도 오류가 발생할 수있는 곳. 다른 모든 것 XlogreadRecord ()의 발신자는 이미 그렇게합니다. 검토 : Kyotaro Horiguchi 논의:https : //postgr.es/m/yynth6oyowqcadkw@paquier.xyz https : //git.토토 커뮤니티.org/pg/commitdiff/c9c401a5e13accc4a3a3a775e3feeabdc5940c9178

  • Clang-12 ~와 함께 PL/Perl에서 오는 컴파일 경고 정리. Clang-12가 있습니다 -wcompound-token-split by macro가 소개되어 많은 양이 생깁니다 업스트림 Perl과의 상호 작용으로 인해 PL/PERL을 구축 할 때 경고. 이 커밋 컴파일러가 지원하여 모든 경고를 침묵시킵니다. 상류 Perl이 있습니다 이 문제를 해결했지만 이것이 퍼지기 전에 시간이 걸릴 것입니다. Buildfarm을 가로 질러, 우리는 일부 동물이 유용하다는 것을 알았습니다. 부정확 한 자리 표시자를 감지하는 데 도움이되는 여분의 상인으로 (B0CF544 참조), Dangomushi는 하나입니다. 검토 : Tom Lane 토론 :https : //postgr.es/m/yyr3qya/r3gw+sbg@paquier.xyzBackpatch-Strough : 10https : //git.토토 커뮤니티.org/pg/commitdiff/9ff47EA414C4E6ACE347FC4E59866E38B9BBBCEAF

  • 빈 입력으로 유니 코드 문자열 정규화에서 버퍼를 고정합니다. Postgresql 13 및 최신 버전은 SQL을 통해 직접 영향을받습니다. function ormalize (),이 기능의 호출이 하나를 작성하게합니다. 입력에 사용하는 경우 할당을 지나서 바이트를 사용한 후 빈 문자열을 사용하는 경우 NFC 및 NFKC가있는 문자열. 이전 버전 (v10 ~ v12)은 직접적이지 않습니다 정규화를 사용한 유일한 코드 경로는 SASLPREP입니다. 빈 문자열의 경우를 금지하는 SCRAM 인증에서 어쨌든이 코드를 더욱 강력하게 만드십시오. 기능이 다루어집니다. 이 문제를 해결하기 위해 선택한 솔루션은 간단합니다. 분해 된 문자열이 비어있는 경우 빠른 속도로 경로를 추가합니다. 이것은 가장 낮은 수준에서 코드 포인트와 같이 빈 문자열에 대해서만 발생합니다. 분해 테이블에 항목이 없거나 분해 크기가 0 인 경우이 문제를 다루기 위해 일부 테스트가 추가됩니다. v13 ~. 빈 문자열은 항상 정규화 된 것으로 간주되었습니다. (Grammar "IS NF [K] C, D SQL 함수 IS_NORMALIZED ()를 통해)) 이 기능 이후 허용 된 모든 작업 (NFC, NFD, NFKC 및 NFKD)의 경우 2991AC5 기준으로 도입되었습니다. 이 동작은 변경되지 않지만 일부 테스트입니다 그 후 확인하기 위해 v13 ~에 추가됩니다. 나는 또한 "make를 확인했다 정규화 확인 "SRC/Common/Unicode/in 동안 (13 ~, 그리고 이 커밋과 독립적으로 오래된 안정된 지점에서 파손). 릴리스 메모는 v13 ~에 대한이 커밋을 언급해야합니다. 보고서 : Matthijs van der Vleuten 토론 :https : //postgr.es/m/17277-0c527a373794e802@토토 커뮤니티.orgBackpatch-Strough : 10https : //git.토토 커뮤니티.org/pg/commitdiff/098c13455664d37b78ae87853a82f4a9d23a2c8

  • PG_STAT_SLRU를 쿼리 할 때 메모리 오버런을 수정합니다. pg_stat_get_slru () in pgstatfuncs.c는 배열 끝에 하나의 요소를 가리 킵니다. 항목을 스캔하기 위해 마무리 할 때 pgstat_slrustats. 이것은 직접적인 것이 없었습니다 추가 메모리 영역의 데이터가 읽지 않은 결과를 읽었지만 정적 분석기는 여기에서 정당하게 불평 할 것입니다. 그러니 깨끗하게합시다. 그것에있는 동안 시스템 뷰를 위해 예약 된 영역에서 하나의 회귀 테스트가 추가됩니다. 보고서 : Alexander Kozhemyakin, 주소 사료 저자 : Kyotaro Horiguchi 토론 :https : //postgr.es/m/17280-37da556e86032070@토토 커뮤니티.orgBackpatch-Strough : 13https : //git.토토 커뮤니티.org/pg/commitdiff/a45ed975c58fde7303eeae488b313bf0314383f7

Peter Eisentraut 추진 :

Jeff Davis PUSH :

Álvaro Herrera 추진 :

Peter Geoghegan 추진 :

Noah Misch 추진 :

Andrew Dunstan 추진 :

Daniel Gustafsson이 추진했습니다 :