From patchwork Thu Oct 15 10:34:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 40724 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 26E5A3857834; Thu, 15 Oct 2020 10:35:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 26E5A3857834 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1602758104; bh=Cdxpa5JtMposJFz4kGUUBclZtKMi8ztGfiUyT/93ehk=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=qIraxwgi7+4Z4eyFCCsPOWvWqbH27x4Vj+YxV4YGJUVhkHAL9/O1jbIOyOHcdn/tA Vlc92whOW/RlraOWSJspBjkBcnj+AfFJ5akdTHF56dVKGdc0F9uuvDKyVZNgdleCh5 nHpsWTtGSCuyHxMP6jlat4ZPeKfFJKwsmX3K8Gl0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id 591413857804 for ; Thu, 15 Oct 2020 10:35:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 591413857804 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-445-UzkZA2W9MV6Psh7it07Htg-1; Thu, 15 Oct 2020 06:34:57 -0400 X-MC-Unique: UzkZA2W9MV6Psh7it07Htg-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E9BCE64148 for ; Thu, 15 Oct 2020 10:34:56 +0000 (UTC) Received: from oldenburg2.str.redhat.com (ovpn-114-145.ams2.redhat.com [10.36.114.145]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6C2D95D9D5 for ; Thu, 15 Oct 2020 10:34:56 +0000 (UTC) To: libc-alpha@sourceware.org Subject: [PATCH COMMITTED] resolv: Serialize processing in resolv/tst-resolv-txnid-collision Date: Thu, 15 Oct 2020 12:34:54 +0200 Message-ID: <877drrixpt.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Florian Weimer via Libc-alpha From: Florian Weimer Reply-To: Florian Weimer Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" When switching name servers, response processing by two server threads clobbers the global test state. (There is still some risk that this test is negatively impact by packet drops and packet reordering, but this applies to many of the resolver tests and is difficult to avoid.) Fixes commit f1f00c072138af90ae6da180f260111f09afe7a3 ("resolv: Handle transaction ID collisions in parallel queries (bug 26600)"). --- resolv/tst-resolv-txnid-collision.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/resolv/tst-resolv-txnid-collision.c b/resolv/tst-resolv-txnid-collision.c index 611d37362f..189b76f126 100644 --- a/resolv/tst-resolv-txnid-collision.c +++ b/resolv/tst-resolv-txnid-collision.c @@ -309,6 +309,11 @@ do_test (void) ((struct resolv_redirect_config) { .response_callback = response, + + /* The response callback use global state (the previous_* + variables), and query processing must therefore be + serialized. */ + .single_thread_udp = true, }); for (int rcode = 0; rcode <= 5; ++rcode)