From dev-return-10780-apmail-giraph-dev-archive=giraph.apache.org@giraph.apache.org Wed Jun 8 17:27:22 2016 Return-Path: X-Original-To: apmail-giraph-dev-archive@www.apache.org Delivered-To: apmail-giraph-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A9B0A19DBA for ; Wed, 8 Jun 2016 17:27:22 +0000 (UTC) Received: (qmail 11565 invoked by uid 500); 8 Jun 2016 17:27:22 -0000 Delivered-To: apmail-giraph-dev-archive@giraph.apache.org Received: (qmail 10286 invoked by uid 500); 8 Jun 2016 17:27:21 -0000 Mailing-List: contact dev-help@giraph.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@giraph.apache.org Delivered-To: mailing list dev@giraph.apache.org Received: (qmail 10160 invoked by uid 500); 8 Jun 2016 17:27:21 -0000 Delivered-To: apmail-incubator-giraph-dev@incubator.apache.org Received: (qmail 10144 invoked by uid 99); 8 Jun 2016 17:27:21 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Jun 2016 17:27:21 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 417E42C1F6B for ; Wed, 8 Jun 2016 17:27:21 +0000 (UTC) Date: Wed, 8 Jun 2016 17:27:21 +0000 (UTC) From: "Sergey Edunov (JIRA)" To: giraph-dev@incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (GIRAPH-1069) Race condition in all *ConfOption classes MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 Sergey Edunov created GIRAPH-1069: ------------------------------------- Summary: Race condition in all *ConfOption classes Key: GIRAPH-1069 URL: https://issues.apache.org/jira/browse/GIRAPH-1069 Project: Giraph Issue Type: Bug Reporter: Sergey Edunov Assignee: Sergey Edunov *ConfOption classes, such as ClassConfOption, IntConfOption, FloatConfOption etc, call AllOtions.add(this) from their constructor. This call updates static list without any synchronization. Hence, if you create conf option classes in different threads you run into race condition. The only reason we have AllOptions is to create documentation. It can be done with reflection instead. So, let's remove AllOtions.add(this) from all conf classes and implement reflection based approach in AllOptions -- This message was sent by Atlassian JIRA (v6.3.4#6332)