Return-Path: X-Original-To: apmail-qpid-commits-archive@www.apache.org Delivered-To: apmail-qpid-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B7DD818A79 for ; Thu, 29 Oct 2015 16:59:47 +0000 (UTC) Received: (qmail 81536 invoked by uid 500); 29 Oct 2015 16:59:47 -0000 Delivered-To: apmail-qpid-commits-archive@qpid.apache.org Received: (qmail 81505 invoked by uid 500); 29 Oct 2015 16:59:47 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 81496 invoked by uid 99); 29 Oct 2015 16:59:47 -0000 Received: from Unknown (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Oct 2015 16:59:47 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 1C7D91A2BB1 for ; Thu, 29 Oct 2015 16:59:47 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.79 X-Spam-Level: * X-Spam-Status: No, score=1.79 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, T_RP_MATCHES_RCVD=-0.01] autolearn=disabled Received: from mx1-us-west.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id HK8VPMZYScc2 for ; Thu, 29 Oct 2015 16:59:46 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-us-west.apache.org (ASF Mail Server at mx1-us-west.apache.org) with ESMTP id 1043120633 for ; Thu, 29 Oct 2015 16:59:46 +0000 (UTC) Received: from svn01-us-west.apache.org (svn.apache.org [10.41.0.6]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 9A93EE0451 for ; Thu, 29 Oct 2015 16:59:45 +0000 (UTC) Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 7782D3A0289 for ; Thu, 29 Oct 2015 16:59:45 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1711301 - in /qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport: NetworkConnectionScheduler.java SelectorThread.java Date: Thu, 29 Oct 2015 16:59:45 -0000 To: commits@qpid.apache.org From: rgodfrey@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20151029165945.7782D3A0289@svn01-us-west.apache.org> Author: rgodfrey Date: Thu Oct 29 16:59:45 2015 New Revision: 1711301 URL: http://svn.apache.org/viewvc?rev=1711301&view=rev Log: QPID-6794 : Ensure connection is always added back to the selector it is currently assigned to - otherwise connections are assigned to all selectors, and deadlocks can occur Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java?rev=1711301&r1=1711300&r2=1711301&view=diff ============================================================================== --- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java (original) +++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java Thu Oct 29 16:59:45 2015 @@ -134,7 +134,7 @@ public class NetworkConnectionScheduler } else { - _selectorThread.addConnection(connection); + _selectorThread.returnConnectionToSelector(connection); } } } Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java?rev=1711301&r1=1711300&r2=1711301&view=diff ============================================================================== --- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java (original) +++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java Thu Oct 29 16:59:45 2015 @@ -490,6 +490,21 @@ class SelectorThread extends Thread } + public void returnConnectionToSelector(final NonBlockingConnection connection) + { + if(selectionInterestRequiresUpdate(connection)) + { + SelectionTask selectionTask = connection.getSelectionTask(); + if(selectionTask == null) + { + throw new IllegalStateException("returnConnectionToSelector should only be called with connections that are currently assigned a selector task"); + } + selectionTask.getUnregisteredConnections().add(connection); + selectionTask.wakeup(); + } + + } + private SelectionTask getNextSelectionTask() { int index; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org For additional commands, e-mail: commits-help@qpid.apache.org