On Sun, Jul 14, 2019 at 6:06 AM Nitish Saboo <nitish.sabo...@gmail.com> wrote:
>
> 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.

Ah, my apologies.

Ian

> 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/CAOyqgcXSv%3D73S%2BTcW%3Dhagp2VCB7_%2BcsPjqSkp3ZCPBBJekoA0A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to