Moumita Das
2009-Feb-18 05:32 UTC
[R] Segmentation Fault occured while connecting to the database
Hi All, Can anyone help me please?I don't know much about segmentation faults.I understand what it is,but why my script's throwing the error i don't know. This is my main function:---- *main<-function()* *{* * dbName<-"xyz_database"* * hostName<-"xyz.com"* * con<-myDbconnect(dbName,hostName) * * * * #Fetching exact sub group names* * sub_grp_exact_num<-getSbGrpExactNum(con)* * sub_grp_exact_num_data<-sub_grp_exact_num$matrix* * sub_grp_exact_num_data_size<-sub_grp_exact_num$dim* there's is some other code following the above....i thought this much code is enough to explain my problem......error occurs when the myDbconnect function is called at teh third line ** *}* myDbconnect function is here:-- *myDbconnect<-function(dbName, hostName)* *{* * print("myDbconnect ")* * drv<-MySQL()* * #print(drv)* * con <- dbConnect(drv, user="xyz", password="xyz",dbname dbName, host = hostName)* * #return(con)* *}* When print("myDbconnect print") is the first line of the myDbconnect function "myDbconnect print" gets printed.Though followed by error messages,shown below:----------------- *> source("new_regression.R")* *Loading required package: DBI* *[1] "myDbconnect print"* * *** caught segfault **** *address 0x55, cause 'memory not mapped'* * * *Traceback:* * 1: .Call("RS_MySQL_newConnection", drvId, con.params, groups, default.file, PACKAGE = .MySQLPkgName)* * 2: mysqlNewConnection(drv, ...)* * 3: .class1(object)* * 4: .class1(object)* * 5: is(object, Cl)* * 6: .valueClassTest(standardGeneric("dbConnect"), "DBIConnection", "dbConnect")* * 7: dbConnect(drv, user = "xyz", password = "xyz", dbname = dbName, host = hostName)* * 8: myDbconnect(dbName, hostName)* * 9: main()* *10: eval.with.vis(expr, envir, enclos)* *11: eval.with.vis(ei, envir)* *12: source("new_regression.R")* * * *Possible actions:* *1: abort (with core dump)* *2: normal R exit* *3: exit R without saving workspace* *4: exit R saving workspace* *Selection:* Now if I change the position of the print statement from first line to fourth line after dbConnect function:------ myDbconnect<-function(dbName, hostName) { drv<-MySQL() #print(drv) con <- dbConnect(drv, user="xyz", password="xyz",dbname dbName, host = hostName) print("myDbconnect print") #return(con) } In this case the text ("myDbconnect print") is not printed ,otherwise what I see is same as above i.e.:--> source("new_regression.R")Loading required package: DBI *** caught segfault *** address 0x55, cause 'memory not mapped' Traceback: 1: .Call("RS_MySQL_newConnection", drvId, con.params, groups, default.file, PACKAGE = .MySQLPkgName) 2: mysqlNewConnection(drv, ...) 3: .class1(object) 4: .class1(object) 5: is(object, Cl) 6: .valueClassTest(standardGeneric("dbConnect"), "DBIConnection", "dbConnect") 7: dbConnect(drv, user = "xyz", password = "xyz", dbname = dbName, host = hostName) 8: myDbconnect(dbName, hostName) 9: main() 10: eval.with.vis(expr, envir, enclos) 11: eval.with.vis(ei, envir) 12: source("new_regression.R") Possible actions: 1: abort (with core dump) 2: normal R exit 3: exit R without saving workspace 4: exit R saving workspace Selection: *CONCLUSION:-- So the problem arises in the* *dbconnect function* *inside myDbconnect function.* *i.e this line :--* con <- dbConnect(drv, user="xyz", password="xyz",dbname = dbName, host hostName) It's a segfault. A segmentation fault occurs when a program *attempts to access a memory location that it is not allowed to access*, or *attempts to access a memory location in a way that is not allowed* (for example, attempting to write to a read-only location, or to overwrite part of the operating system).Don't understand how I am trying to do any of these incorrect operations. Moreover *traceback() *is a function in R that is used for debugging ; prints the call stack of the last uncaught error, i.e., the sequence of calls that lead to the error.I have not used it anywhere in my script but still it shows the errors. P.S:--- I found these links,buti don't understand,where am I going wrong :-- http://tolstoy.newcastle.edu.au/R/e2/devel/06/12/1436.html http://www.ens.gu.edu.au/ROBERTK/R/HELP/00a/0111.HTML http://tolstoy.newcastle.edu.au/R/e2/devel/06/12/1438.html Any help is welcome..Even if anybody doesn't know to solve the problem,is there anyother way ,i can get some more information,out of my script regarding the cause of the error.do i need to make any changes,somewhere else other than the script,to get rid of this problem. -- Thanks in advance Moumita -- Thanks Moumita [[alternative HTML version deleted]]