HI Ian, func (obj SyslogParser) LoadPatternDB(opts Syslog, workerId int) { log.Info("Loading pattern db with path:", opts.Patterndb) > patterndbpath := C.CString(opts.Patterndb) . <<<<<<<<<<<<<<< . STEP 1 > defer C.free(unsafe.Pointer(patterndbpath)) . <<<<<<<<<<<<<<<< STEP 2 > InitStruct := (*C.Accumulatedparams)(C.calloc(1, C.sizeof_struct_Accumulatedparams)) > InitStruct.callback = (C.key_value_cb)(C.callback) > InitStruct.data = C.int(workerId) > C.load_pattern_db(patterndbpath, (*C.Accumulatedparams)(unsafe.Pointer(InitStruct)), C.int(workerId)) > } >
In my code there is one calloc call producing a pointer but I am not freeing up calloc pointer.I am freeing up 'patterndbpath' pointer. Thanks, Nitish On Sat, Jul 13, 2019 at 8:34 PM Ian Lance Taylor <i...@golang.org> wrote: > On Sat, Jul 13, 2019, 1:20 AM Nitish Saboo <nitish.sabo...@gmail.com> > wrote: > >> Hi Ian, >> >> Apologies for not being very descriptive with the issue.I will try to be >> more clear from next time. >> Can you please clarify the following that you had mentioned in the >> previous conversation of this email: >> >> > 3)Is it possible that one Go routine has already freed up the address >> that the other Go routine is trying to free and that is causing this >> 'fatal error: bin/main': double free or corruption (fasttop)' >> >> Yes, that is possible. It won't happen with the code I see above but >> I have no idea what the rest of your code is doing. >> >> How can it not happen with this particular code mentioned ?I did not >> understand this point. >> Can you please clarify this point ? >> > > > In the code you showed us, there is one calloc call producing a pointer > and one free call releasing that pointer. So in that code there is no way > for one goroutine to free code allocated by another goroutine. I'm not > sure how else to say it. Perhaps you could clarify the code path you are > concerned about. > > Iam > > > On Fri, Jul 12, 2019 at 11:42 PM Ian Lance Taylor <i...@golang.org> wrote: >> >>> On Fri, Jul 12, 2019 at 10:53 AM Nitish Saboo <nitish.sabo...@gmail.com> >>> wrote: >>> > >>> > Thanks for pointing it out.I am a beginner with Go and CGO and have >>> never worked on corruption issues with C. >>> > I am familiar with python and Java.So just seeking help from the >>> experts to find the pain points that should be looked into. >>> > Hence, asking questions to Ian as in where all I should look for the >>> corruption issues. >>> >>> From my perspective, it's kind of like you have a broken clock, and >>> you are showing us a photo of the clock face, and asking how to fix >>> the clock. We don't know. The clock face looks OK. The problem is >>> most likely inside the clock, but we can't see that. Only you can see >>> that. >>> >>> Ian >>> >> -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CALjMrq4gg5ObFLk81z5YE8%3DzZLwkAGP3_R8mqnnWws1QmpsOyQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.