[ https://issues.apache.org/jira/browse/FLINK-2527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14698834#comment-14698834 ]
ASF GitHub Bot commented on FLINK-2527: --------------------------------------- Github user ggevay commented on the pull request: https://github.com/apache/flink/pull/1027#issuecomment-131612652 Done. > If a VertexUpdateFunction calls setNewVertexValue more than once, the > MessagingFunction will only see the first value set > ------------------------------------------------------------------------------------------------------------------------- > > Key: FLINK-2527 > URL: https://issues.apache.org/jira/browse/FLINK-2527 > Project: Flink > Issue Type: Bug > Components: Gelly > Reporter: Gabor Gevay > Assignee: Gabor Gevay > Fix For: 0.10, 0.9.1 > > > The problem is that if setNewVertexValue is called more than once, it sends > each new value to the out Collector, and these all end up in the workset, but > then the coGroups in the two descendants of MessagingUdfWithEdgeValues use > only the first value in the state Iterable. I see three ways to resolve this: > 1. Add it to the documentation that setNewVertexValue should only be called > once, and optionally add a check for this. > 2. In setNewVertexValue, do not send the newValue to the out Collector at > once, but only record it in outVal, and send the last recorded value after > updateVertex returns. > 3. Iterate over the entire Iterable in MessagingUdfWithEVsSimpleVV.coGroup > and MessagingUdfWithEVsVVWithDegrees.coGroup. (This would probably still need > some documentation addition.) > I like 2. the best. What are your opinions? -- This message was sent by Atlassian JIRA (v6.3.4#6332)