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.

Reply via email to