Certain GraphML files might crash SocNetV

Bug #514264 reported by Dimitris Kalamaras
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
SocNetV
Fix Released
High
Dimitris Kalamaras
1.x
Fix Released
High
Dimitris Kalamaras

Bug Description

As reported by Antonio Tapiador in another bug report [bug #513013, now closed as that was affecting Windows only] graphml files created by other applications may crash SocNetV on loading, if the file declares edges using labels instead of ids in the 'source' and 'target' tokens.

That (the use of labels in edges' source and target tokens) is not supported yet by SocNetV.

EDIT: It appears labels have nothing to do - Read https://bugs.launchpad.net/socnetv/+bug/514264/comments/6

The Killer Graph:
http://launchpadlibrarian.net/38522213/test.graphml

description: updated
description: updated
Changed in socnetv:
importance: Undecided → High
status: New → Confirmed
assignee: nobody → Dimitris Kalamaras (dimitris-kalamaras)
description: updated
Revision history for this message
Antonio Tapiador (atapiador) wrote :

When you talk about using using labels, you refer to using string values instead of integer, isn't it?

Revision history for this message
Antonio Tapiador (atapiador) wrote :

I've gone on this, and found that the same specification crashes if I declare the links between the main nodes.

test.graphml collects those links and crashes
test.graphml.without_relations doen't and it works

Hope it helps.

Revision history for this message
Antonio Tapiador (atapiador) wrote :
Revision history for this message
Antonio Tapiador (atapiador) wrote :
Revision history for this message
Antonio Tapiador (atapiador) wrote :

This, without any label, crashes as well

Revision history for this message
Dimitris Kalamaras (dimitris-kalamaras) wrote :

Antonio, I was wrong in the first report/bug description. SocNetV does support strings in ids. It has nothing to do with your killer graphs.

The "problem" with your killer test files is that they sometimes declare edges between nodes which have not been declared yet. Although node/edge order is not in GraphML specs, SocNetV expects GraphML nodes to be declared before edges.

For instance, the problem with your test.graphml (comment #5) is in line 11 where it tells SocNetV to create an edge between source 1 and target 13, but the latter (node 13) has not been declared or created yet.

The same problem appears in test.graphml (comment #3). In line 31
    <edge target="56" source="2" directed="true" id="e-2-sex_id"/>

source node 56 is not declared yet.

As for test.graphml.without-relations, this appears to load OK in development/0.81 version. It loads 408 nodes and 344 links.

Thank you for reporting this bug. I will try to have it fixed in v0.90.

description: updated
Revision history for this message
Antonio Tapiador (atapiador) wrote :

Dimitris, I confirm the diagnosis. Regenerating the graphs with the nodes definition before the edges definition works.
I can live with it. Thank you again!

no longer affects: socnetv/0.x
Revision history for this message
Dimitris Kalamaras (dimitris-kalamaras) wrote :

This bug has been fixed and committed for version 1.4.

The fix has been tested again all data reported by Antonio (killer.graphml, test.graphml, etc).

The problem was that in these files an edge was declared before the source and target nodes. For instance, in test.graphml (comment #3) and edge was declared in line 31
    <edge target="56" source="2" directed="true" id="e-2-sex_id"/>

but source node 56 had not been declared yet.

The fix makes sure SocNetV sees that and creates all missing nodes. So, no more crashes :)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.