I know why you are getting the segfault, which I will fix, but I do not 
know why the initialization is failing and causing this.

Can you step through ipmi_init() with the debugger and see which exact 
function is failing to initialize?

-corey

Dejan Muhamedagic wrote:
> Hi,
>
> On Thu, Jan 17, 2008 at 09:58:42AM -0600, Corey Minyard wrote:
>   
>> Bugs have been fixed in this code that might solve the problem.  Is there 
>> any way you can try a newer version of the library?
>>     
>
> Tried with the latest (2.0.13) from sourceforge. The same thing:
>
> Thread 1 (process 12048):
> #0  0x00000000 in ?? ()
> No symbol table info available.
> #1  0xb7f5c786 in locked_list_remove (ll=0x8056620, item1=0xb7b44700, 
>     item2=0x0) at locked_list.c:296
>       rv = <value optimized out>
> #2  0xb7aee30f in _ipmi_fru_deregister_decoder (
>     op=0xb7b44700 <process_fru_spd_info>) at fru.c:270
> No locals.
> #3  0xb7b446f0 in _ipmi_fru_spd_decoder_shutdown () at fru_spd_decode.c:327
> No locals.
> #4  0xb7ad56ea in ipmi_init (handler=0x8056600) at ipmi.c:1029
>       rv = 11
> #5  0xb7f680ea in setup_ipmi_conn (host=0x8051128, request=4)
>     at ipmilan_command.c:293
>       rv = 0
>       ent = (struct hostent *) 0xb7f4c455
>       lan_addr = {{s_addr = 3086282740}, {s_addr = 3086527648}}
>       lan_port = {134549680, -1079889992}
>       num_addr = 1
>       authtype = 0
>       privilege = 0
>       username = "..."
>       password = "..."
>       timer = (sel_timer_t *) 0xb7c2a179
>       timeout = {tv_sec = 134590944, tv_usec = -1079890040}
>       con = (ipmi_con_t *) 0x80575c0
> #6  0xb7f68457 in do_ipmi_cmd (host=0x8051128, request=4)
>     at ipmilan_command.c:372
>
> Cheers,
>
> Dejan
>
>   
>> -corey
>>
>> Dejan Muhamedagic wrote:
>>     
>>> Hi,
>>>
>>> This is on a openSUSE 10.3 and ipmi is:
>>>
>>> OpenIPMI-devel-2.0.7-102
>>>
>>> The backtrace:
>>>
>>> Thread 1 (process 8787):
>>> #0  0x00000000 in ?? ()
>>> No symbol table info available.
>>> #1  0xb7f8a8b6 in locked_list_remove () from 
>>> /usr/lib/libOpenIPMIutils.so.0
>>> No symbol table info available.
>>> #2  0xb7b1b19f in _ipmi_fru_deregister_decoder ()
>>>    from /usr/lib/libOpenIPMI.so.0
>>> No symbol table info available.
>>> #3  0xb7b730f0 in _ipmi_fru_spd_decoder_shutdown ()
>>>    from /usr/lib/libOpenIPMI.so.0
>>> No symbol table info available.
>>> #4  0xb7b0254a in ipmi_init () from /usr/lib/libOpenIPMI.so.0
>>> No symbol table info available.
>>> #5  0xb7f95b1a in do_ipmi_cmd (host=0x8051028, request=4)
>>>     at ipmilan_command.c:293
>>> No locals.
>>> #6  0xb7f955f7 in ipmilan_status (s=0x8050f80) at ipmilan.c:231
>>>     rv = <value optimized out>
>>>     node = (struct ipmilanHostInfo *) 0x8051028
>>>     ret = 0
>>>     __FUNCTION__ = "ipmilan_status"
>>>
>>> The code is a bit old (from the openipmi 1.x times) and I'm
>>> trying to revive it, so far unsuccessfully. I looked at it for a
>>> while, but can't figure out what's wrong. ipmi_init obviously
>>> fails and segfaults when trying to cleanup. The same device talks
>>> without problems to the ipmitool.
>>>
>>> The code is below, with error checking removed for clarity.
>>>
>>> Cheers,
>>> str2a:      .asciz "T2a\n"
>>>
>>> Dejan
>>>
>>>     os_hnd = ipmi_posix_get_os_handler();
>>>     rv = sel_alloc_selector(os_hnd, &os_sel);
>>>     ipmi_posix_os_handler_set_sel(os_hnd, os_sel);
>>>     rv = ipmi_init(os_hnd);
>>>     ent = gethostbyname(host->ipaddr);
>>>     memcpy(&lan_addr[0], ent->h_addr_list[0], ent->h_length);
>>>     lan_port[0] = host->portnumber;
>>>     lan_port[1] = 0;
>>>     authtype = host->authtype;
>>>     privilege = host->privilege;
>>>     memcpy(username, host->username, sizeof(username));
>>>     memcpy(password, host->password, sizeof(password));
>>>     rv = ipmi_lan_setup_con(lan_addr, lan_port, num_addr,                   
>>>         authtype, 
>>> privilege,
>>>                             username, strlen(username),
>>>                             password, strlen(password),
>>>                             os_hnd, os_sel,
>>>                             &con);
>>> #if OPENIPMI_VERSION_MAJOR < 2
>>>     con->set_con_change_handler(con, con_changed_handler, &request);
>>> #else
>>>     con->add_con_change_handler(con, con_changed_handler, &request);
>>> #endif
>>>     rv = con->start_con(con);
>>>
>>>     gettimeofday(&timeout, NULL);
>>>     timeout.tv_sec += OPERATION_TIME_OUT;
>>>     timeout.tv_usec += 0;
>>>     sel_alloc_timer(os_sel, timed_out, NULL, &timer);
>>>     sel_start_timer(timer, &timeout);
>>>
>>>     while (1) {
>>>             rv = sel_select(os_sel, NULL, 0, NULL, NULL);
>>>             if (gstatus != IPMI_RUNNING) {
>>>                     break;
>>>             }
>>>     }
>>>
>>>     sel_free_timer(timer);
>>>
>>>     con->close_connection(con);
>>>     ipmi_shutdown();
>>>
>>>
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by: Microsoft
>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>> _______________________________________________
>>> Openipmi-developer mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/openipmi-developer
>>>   
>>>       
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Openipmi-developer mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/openipmi-developer
>   


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Openipmi-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to