sneumann / mzR

This is the git repository matching the Bioconductor package mzR: parser for netCDF, mzXML, mzData and mzML files (mass spectrometry data)
40 stars 26 forks source link

SEGV in mzR:::rampOpen(filename) #257

Open sneumann opened 2 years ago

sneumann commented 2 years ago

Hi, the BioC build system reports a SEGV for 2.29.1 on Linux and MacOS in the tests:

> BiocGenerics:::testPackage("mzR")
Loading required namespace: XML
reading Tandem.mzid.gz... DONE!

 *** caught segfault ***
address (nil), cause 'memory not mapped'

Traceback:
 1: mzR:::rampOpen(filename)
 2: func()
 3: system.time(func(), gcFirst = RUnitEnv$.gcBeforeTest)
 4: doTryCatch(return(expr), name, parentenv, handler)
 5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 6: tryCatchList(expr, classes, parentenv, handlers)
 7: tryCatch(expr, error = function(e) {    call <- conditionCall(e)    if (!is.null(call)) {        if (identical(call[[1L]], quote(doTryCatch)))             call <- sys.call(-4L)        dcall <- deparse(call, nlines = 1L)        prefix <- paste("Error in", dcall, ": ")        LONG <- 75L        sm <- strsplit(conditionMessage(e), "\n")[[1L]]        w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w")        if (is.na(w))             w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L],                 type = "b")        if (w > LONG)             prefix <- paste0(prefix, "\n  ")    }    else prefix <- "Error : "    msg <- paste0(prefix, conditionMessage(e), "\n")    .Internal(seterrmessage(msg[1L]))    if (!silent && isTRUE(getOption("show.error.messages"))) {        cat(msg, file = outFile)        .Internal(printDeferredWarnings())    }    invisible(structure(msg, class = "try-error", condition = e))})
 8: try(system.time(func(), gcFirst = RUnitEnv$.gcBeforeTest))
 9: .executeTestCase(funcName, envir = sandbox, setUpFunc = .setUp,     tearDownFunc = .tearDown)
10: .sourceTestFile(testFile, testSuite$testFuncRegexp)
11: RUnit::runTestSuite(suite)
12: BiocGenerics:::testPackage("mzR")

I can reproduce locally. There has been one successful build of macOS 2.29.1 binaries on https://bioconductor.org/packages/3.15/bioc/html/mzR.html sometime in the past, so the issue might have cropped up after our last commit.

The 2.28.0 https://master.bioconductor.org/checkResults/3.14/bioc-LATEST/mzR/ builds fine on BioC, but I get the same SEGV on my system with its random combination of package versions.

If we get the updated pwiz in soon, we might ignore fixing the root cause of this SEGV here.

Yours, Steffen

jorainer commented 2 years ago

Honestly, I would try to focus all efforts on the mzR/pwiz update.