Return-Path: X-Original-To: apmail-flink-dev-archive@www.apache.org Delivered-To: apmail-flink-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 575CB17BA9 for ; Fri, 3 Apr 2015 10:48:41 +0000 (UTC) Received: (qmail 93549 invoked by uid 500); 3 Apr 2015 10:48:41 -0000 Delivered-To: apmail-flink-dev-archive@flink.apache.org Received: (qmail 93492 invoked by uid 500); 3 Apr 2015 10:48:41 -0000 Mailing-List: contact dev-help@flink.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flink.apache.org Delivered-To: mailing list dev@flink.apache.org Received: (qmail 93480 invoked by uid 99); 3 Apr 2015 10:48:40 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Apr 2015 10:48:40 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of vasilikikalavri@gmail.com designates 209.85.215.50 as permitted sender) Received: from [209.85.215.50] (HELO mail-la0-f50.google.com) (209.85.215.50) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Apr 2015 10:48:14 +0000 Received: by lahf3 with SMTP id f3so77103565lah.2 for ; Fri, 03 Apr 2015 03:46:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=CghaHW8GvE1qeVyRbyMcqr/6BVTXD5yzxYDpNKn8OGY=; b=06F5v7xSFxHVXH22zZMA5oGlOx4NCm5FYN7W76BL+rCPu+LjJqO+h6CmvWdADLZpYz pS1uEjrEZ+4C/+9OxAoIV4mcVfqZCfMm28X0ifxti9XGb4t5vtXJHAZFXDbPakmjaco8 2BBr0gAsi8UYYO0xFmMZG2NzmM3qngI1QDvcgrtQQVVYiY4wKa0RbwUiiXQPE60zg0s5 vyaEyPnXk6/jdxd/Qe9A/zSxE0Cg8F+5zAB0R1wOsT+y1uxPim7cH28oFzlI8s9iHbly 52R0WuF59qGBA6Pw4TNofRZBlwqFhH8P09wa/DiO+sqTdQuj8Qymu9RpwzqE0HPdZdm1 uzIA== MIME-Version: 1.0 X-Received: by 10.152.45.37 with SMTP id j5mr1690808lam.31.1428058003133; Fri, 03 Apr 2015 03:46:43 -0700 (PDT) Received: by 10.114.242.98 with HTTP; Fri, 3 Apr 2015 03:46:43 -0700 (PDT) Date: Fri, 3 Apr 2015 12:46:43 +0200 Message-ID: Subject: NullPointerException in DeltaIteration when no ForwardedFileds annotation From: Vasiliki Kalavri To: dev@flink.apache.org Content-Type: multipart/alternative; boundary=001a11c28c10fedb180512cfa937 X-Virus-Checked: Checked by ClamAV on apache.org --001a11c28c10fedb180512cfa937 Content-Type: text/plain; charset=UTF-8 Hello to my squirrels, I've been getting a NullPointerException for a DeltaIteration program I'm trying to implement and I could really use your help :-) It seems that some of the input Tuples of the Join operator that I'm using to create the next workset / solution set delta are null. It also seems that adding ForwardedFields annotations solves the issue. I managed to reproduce the behavior using the ConnectedComponents example, by removing the "@ForwardedFieldsFirst("*")" annotation from the ComponentIdFilter join. The exception message is the following: Caused by: java.lang.NullPointerException at org.apache.flink.examples.java.graph.ConnectedComponents$ComponentIdFilter.join(ConnectedComponents.java:186) at org.apache.flink.examples.java.graph.ConnectedComponents$ComponentIdFilter.join(ConnectedComponents.java:1) at org.apache.flink.runtime.operators.JoinWithSolutionSetSecondDriver.run(JoinWithSolutionSetSecondDriver.java:198) at org.apache.flink.runtime.operators.RegularPactTask.run(RegularPactTask.java:496) at org.apache.flink.runtime.iterative.task.AbstractIterativePactTask.run(AbstractIterativePactTask.java:139) at org.apache.flink.runtime.iterative.task.IterationIntermediatePactTask.run(IterationIntermediatePactTask.java:92) at org.apache.flink.runtime.operators.RegularPactTask.invoke(RegularPactTask.java:362) at org.apache.flink.runtime.execution.RuntimeEnvironment.run(RuntimeEnvironment.java:217) at java.lang.Thread.run(Thread.java:745) I get this error locally with any sufficiently big dataset (~10000 nodes). When the annotation is in place, it works without problem. I also generated the optimizer plans for the two cases: - with annotation (working): https://gist.github.com/vasia/4f4dc6b0cc6c72b5b64b - without annotation (failing): https://gist.github.com/vasia/086faa45b980bf7f4c09 After visualizing the plans, the main difference I see is that in the working case, the next workset node and the solution set delta nodes are merged, while in the failing case they are separate. Shouldn't this work with and without annotation (but be more efficient with the annotation in place)? Or am I missing something here? Thanks in advance for any help :)) Cheers, - Vasia. --001a11c28c10fedb180512cfa937--