Ошибка segfault htmlParse () в пакете R XML: «память не отображена» - PullRequest
3 голосов
/ 01 августа 2010

Я использую R 2.11.1 и пакет XML 3.1-0, и я просматривал пример из R2GoogleMaps , когда я обнаружил ошибку segfault.

#library(RJSONIO)
library(R2GoogleMaps)
library(XML)
#library(RCurl)

load("b.rda") # find in the sampleDocs folder in source file of R2GoogleMaps

center = c(mean(range(b$lat)), mean(range(b$long)))
code = addOverlay(gpolyline(b))

d = googleMapsDoc(code, center, zoom = 11, dim = c(750, 700), file = "simplePolyline.html")

Ниже приведен легко воспроизводимый код, который выдает ту же ошибку:

> library(XML)
> a <- htmlParse("http://bm2.genes.nig.ac.jp/RGM2/R_current/library/XML/man/xmlTreeParse.html")
> a

 *** caught segfault ***
address 0x55aa44, cause 'memory not mapped'

Traceback:
 1: .Call("RS_XML_dumpHTMLDoc", doc, as.integer(indent), as.character(encoding),     as.logical(indent), PACKAGE = "XML")
 2: saveXML(from)
 3: saveXML(from)
 4: asMethod(object)
 5: as(x, "character")
 6: cat(as(x, "character"), "\n")
 7: print.XMLInternalDocument(<pointer: 0x1016363f0>)
 8: print(<pointer: 0x1016363f0>)

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection: 1
aborting ...

Process R segmentation fault at Sat Jul 31 22:07:02 2010

Кажется, что проблема также заключается в saveXML() в файле htmlParse().

Когда я писал другой код, который использовал htmlParse(), я не помню, чтобы когда-либо сталкивался с этой проблемой (хотя я не помню, явно ли я вызывал объект htmlParse()). Так что я не совсем уверен, является ли это недавней проблемой или нет. Единственная разница между тогда и сейчас (что я помню) состоит в том, что я установил многие пакеты OmegaHat из исходного кода.

Мне было любопытно, если кто-то еще получал эту ошибку. Чтобы выяснить, в чем причина - в моем ноутбуке, я перезапустил и обновил свою ОС в качестве основного шага. В чем может быть проблема? Спасибо.

edit : только для ref:

> sessionInfo()
R version 2.11.1 (2010-05-31) 
x86_64-apple-darwin9.8.0 

locale:
[1] C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  grid      methods  
[8] base     

other attached packages:
[1] XML_3.1-0     digest_0.4.2  reshape_0.8.3 plyr_0.1.9    proto_0.3-8  

loaded via a namespace (and not attached):
[1] ggplot2_0.8.7

1 Ответ

1 голос
/ 02 августа 2010

Я думаю, что почти по определению ошибка сегментации представляет собой ошибку. Ваш пример работает для меня (см. Ниже).

Я бы (а) удостоверился, что у вас последняя версия XML и что ошибка все еще происходит там; (б) обратитесь к сопровождающему пакета XML (попробуйте

Сопровождающий ( "XML") ) и предоставьте ваш пример и результаты sessionInfo ()

удачи.

=============

библиотека (XML) a <- htmlParse ("<a href="http://bm2.genes.nig.ac.jp/RGM2/R_current/library/XML/man/xmlTreeParse.html" rel="nofollow noreferrer">http://bm2.genes.nig.ac.jp/RGM2/R_current/library/XML/man/xmlTreeParse.html")

sessionInfo () Версия R 2.11.1 (2010-05-31) i486-pc-linux-gnu

Язык: [1] LC_CTYPE = en_US.UTF-8 LC_NUMERIC = C
[3] LC_TIME = en_US.UTF-8 LC_COLLATE = en_US.UTF-8
[5] LC_MONETARY = C LC_MESSAGES = en_US.UTF-8
[7] LC_PAPER = en_US.UTF-8 LC_NAME = C
[9] LC_ADDRESS = C LC_TELEPHONE = C
[11] LC_MEASUREMENT = en_US.UTF-8 LC_IDENTIFICATION = C

прилагаемые базовые пакеты: [1] stats graphics grDevices использует методы сетки наборов данных
[8] база

другие прикрепленные пакеты: [1] XML_3.1-0 reshape_0.8.3 plyr_1.0.3 proto_0.3-8

загружено через пространство имен (и не прикреплено): [1] ggplot2_0.8.8

...