[Bioc-devel] failing with non-reproducible error "no slot of name "name" for this object of class "pEdge"" from Rgraphviz

Andrew McDavid @ndrew@n@mcd@v|d @end|ng |rom gm@||@com
Mon Mar 24 23:17:49 CET 2025


I bisected through recent commits to Rgraphviz and found that 13c8d31 is
the first commit that causes the repro I included earlier to fail.
 13c8d31 does touch buildEdgeList.c, so at least the basic laws of physics
remain intact.  But I fail to see how this was a load-bearing call to
sprintf.

On Mon, Mar 24, 2025 at 12:04 PM Andrew McDavid <andrew.n.mcdavid using gmail.com>
wrote:

> It works with 2.51.1 and fails with 2.51.5.  I haven't tried bisecting
> intermediate commits yet.
>
> On Mon, Mar 24, 2025 at 12:02 PM Kasper Daniel Hansen <
> kasperdanielhansen using gmail.com> wrote:
>
>> Thanks, super useful. So you're saying it was working with 2.51.1? Or is
>> it working with the release version?
>>
>> Best,
>> Kasper
>>
>> On Mon, Mar 24, 2025 at 12:28 PM Andrew McDavid <
>> andrew.n.mcdavid using gmail.com> wrote:
>>
>>> Dear Kasper and Robert,
>>>>
>>>> b) as I said in my original report, with Rgraphviz 2.51.1, I cannot reproduce the pEdge error of OncoSimulR in Linux, x86_64
>>>
>>> Regarding the "no slot of name "name" for this object of class "pEdge"" error, the interesting thing is that:
>>>
>>> Dear all,
>>>
>>> I have been trying to troubleshoot this failure in openCyto and flowWorkspace.  I have managed to reproduce it, but there are several things I don't understand.
>>>
>>> 1) The source version of the package landing page https://bioconductor.org/packages/3.21/bioc/html/Rgraphviz.html (and version that you get with `BiocManager::install`) for Rgraphviz is 2.51.1, but the version being used for the Bioc daily builds is 2.51.5.   The binaries for windows and mac have version number 2.51.5. This is deeply mysterious to me.
>>>
>>> 2) If I manually install the latest version from Kasper's github https://github.com/kasperdanielhansen/Rgraphviz, which is the problematic 2.51.5 version, then I can reproduce the 'no slot of name "name"' error.  The error is ultimately in Rgraphviz_buildEdgeList in src/buildEdgeList.c. Below is the most minimal example triggering the error that I've managed to generate so far.  It hasn't been very amenable for a unit test, because the source data are from complicated S4 classes.  I certainly don't see anything suspicious in the changeset since 2.51.1 that explains the error, but by bisection I guess it did somehow break something in the API that flowWorkspace is using.
>>>
>>>
>>> library(Rgraphviz)
>>> aa = list(N_0 = list(edges = 2L), N_2 = list(edges = 3L), N_3 = list(
>>>   edges = 4L), N_4 = list(edges = c(5L, 6L, 13L)), N_8 = list(
>>>     edges = integer(0)), N_9 = list(edges = integer(0)), N_13 = list(
>>>       edges = integer(0)), N_14 = list(edges = integer(0)), N_15 = list(
>>>         edges = integer(0)), N_16 = list(edges = integer(0)), N_17 = list(
>>>           edges = integer(0)), N_21 = list(edges = integer(0)), N_22 = list(
>>>             edges = integer(0)))
>>>
>>> edgemode_graph = "directed"
>>>
>>> edgeNames = c("N_0~N_2", "N_2~N_3", "N_3~N_4", "N_4~N_8", "N_4~N_9", "N_4~N_22"
>>> )
>>>
>>> edgeAttrs = list(lty = c(`N_0~N_2` = "dotted", `N_2~N_3` = "solid", `N_3~N_4` = "solid",
>>>                          `N_4~N_8` = "solid", `N_4~N_9` = "solid", `N_4~N_22` = "solid"
>>> ))
>>>
>>> defAttrs = list(color = "black", dir = "none", weight = "1.0", label = "",
>>>                 fontcolor = "black", arrowhead = "none", arrowtail = "none",
>>>                 fontsize = "14", labelfontsize = "11", arrowsize = "1", headport = "center",
>>>                 layer = "", style = "solid", minlen = "1")
>>>
>>>
>>> .Call("Rgraphviz_buildEdgeList", aa, edgemode_graph, list(),
>>>       edgeNames, integer(), edgeAttrs, defAttrs, PACKAGE = "Rgraphviz") # i.e. line 45 in R/graphLayout.R
>>>
>>>
>>>
>>>
>>
>> --
>> Best,
>> Kasper
>>
>

	[[alternative HTML version deleted]]



More information about the Bioc-devel mailing list