bugGNU FreeIPMI - Bugs: bug #37126, Intel M/B S3210SH: Segmentation...

 
 

bug #37126: Intel M/B S3210SH: Segmentation fault (i386)

Submitted by:  None
Submitted on:  Thu 16 Aug 2012 05:21:17 PM UTC  
 
Category: ipmi-sensorsSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Crash
Status: NonePrivacy: Public
Assigned to: NoneOpen/Closed: Closed
Operating System: *BSD

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Mon 17 Dec 2012 07:53:36 AM UTC, comment #16:

After rebuilding ports (portupgrading) this problem is solved.
As you said, it possible something was linked incorrectly on my system.

Sergey Zaykov <sergeyzaykov>
Fri 19 Oct 2012 07:28:56 AM UTC, comment #15:

Hi,
the following patch soved this issue for me:

--- ipmi-sensors/ipmi-sensors-argp.c.orig 2012-07-30 19:01:47.000000000 +0200
+++ ipmi-sensors/ipmi-sensors-argp.c 2012-10-18 17:28:28.000000000 +0200
@@ -353,7 +353,7 @@
'\0',
sizeof (struct config_file_data_ipmi_sensors));

- if (config_file_parse (cmd_args->common.config_file,
+ if (cmd_args->common.config_file != NULL && config_file_parse (cmd_args->common.config_file,
0,
&(cmd_args->common),
&(cmd_args->sdr),

Anonymous
Fri 24 Aug 2012 01:48:52 PM UTC, comment #14:

Ugh, I'm sorry, it's proving difficult to debug this on Linux. The default gdb can't read a FreeBSD binary. I think I have to wait until the BSD maintainer can take a look at this, I've e-mailed him.

Albert Chu <chu11>
Project Administrator
Fri 24 Aug 2012 10:32:13 AM UTC, comment #13:

I'm sorry:
http://acc107_3.acc.tula.ru/ipmi-sensors/
ipmi-sensors executable binary
ipmi-sensors.core core dump
src-freebsd386.tgz source for build

Sergey Zaykov <sergeyzaykov>
Thu 23 Aug 2012 04:51:31 PM UTC, comment #12:

I get a permission denied on the link. Also, could you post the binary. I don't have a i386 machine anymore.

Albert Chu <chu11>
Project Administrator
Thu 23 Aug 2012 04:08:58 AM UTC, comment #11:

I got coredump:

http://acc107_3.acc.tula.ru/ipmi-sensors.core

Sergey Zaykov <sergeyzaykov>
Wed 22 Aug 2012 05:10:57 PM UTC, comment #10:

> stacksize 65536 kbytes


The stacksize of 65536 should be more than enough. I tested with a stack as low as 256K (via ulimit -s 256) on Linux and things worked for me. I suppose it couldn't hurt to try and increase your stacksize to see if it helps.

> ipmi_sel_data = Error accessing memory address 0xbfa94a88: Bad address.


Looking online, this can be attributed to a lot of problems. A common problem is when binaries (gdb, libraries, etc.) are built/linked incorrectly for shared i386/x86_64 environments. Is it possible something is linked incorrectly on your system? I ask b/c this is the first i386 bug report I've seen in perhaps 5 years.

Albert Chu <chu11>
Project Administrator
Wed 22 Aug 2012 12:51:37 AM UTC, comment #9:

FreeBSD Patch for cource code is:

--- libfreeipmi/driver/ipmi-kcs-driver.c.orig 2012-01-03 03:25:58.000000000 +0800
+++ libfreeipmi/driver/ipmi-kcs-driver.c 2012-01-06 04:38:31.485000601 +0800
@@ -491,7 +491,7 @@
#ifdef _FreeBSD_
#ifdef USE_IOPERM
/* i386_set_ioperm has known problems on FBSD 5.x (bus errors). */
- if (i386_set_ioperm (ctx->driver_address, 0x02, 0x01))
+ if (sysarch (I386_SET_IOPERM, (void *) (ctx->driver_address, 0x02, 0x01)))
{
KCS_ERRNO_TO_KCS_ERRNUM (ctx, errno);
return (-1);
--- ipmi-oem/ipmi-oem.h.orig 2012-01-03 03:26:10.000000000 +0800
+++ ipmi-oem/ipmi-oem.h 2012-01-06 04:36:44.994004384 +0800
@@ -20,6 +20,7 @@
#define _IPMI_OEM_H

#include <freeipmi/freeipmi.h>
+#include <sys/limits.h>

#include "tool-cmdline-common.h"
#include "pstdout.h"

Sergey Zaykov <sergeyzaykov>
Wed 22 Aug 2012 12:51:22 AM UTC, comment #8:

limit and ulimit
acc:/usr/ports/sysutils/freeipmi>echo $SHELL
/bin/csh
acc:/usr/ports/sysutils/freeipmi>limit
cputime unlimited
filesize unlimited
datasize 524288 kbytes
stacksize 65536 kbytes
coredumpsize unlimited
memoryuse unlimited
vmemoryuse unlimited
descriptors 14745
memorylocked unlimited
maxproc 5547
sbsize unlimited
swapsize unlimited

acc:/usr/ports/sysutils/freeipmi>bash
[acc107_3@acc /usr/ports/sysutils/freeipmi]$ echo $SHELL
/bin/csh
[acc107_3@acc /usr/ports/sysutils/freeipmi]$ ipmi-sensors
Segmentation fault: 11
[acc107_3@acc /usr/ports/sysutils/freeipmi]$ ulmit
bash: ulmit: команда не найдена
[acc107_3@acc /usr/ports/sysutils/freeipmi]$ ulimit
unlimited
[acc107_3@acc /usr/ports/sysutils/freeipmi]$ ipmi-sensors
Segmentation fault: 11

Sergey Zaykov <sergeyzaykov>
Wed 22 Aug 2012 12:46:06 AM UTC, comment #7:

Error is present a last line.
bt full
#0 0x0805dcba in config_file_parse (filename=0x0, no_error_if_not_found=0,
cmd_args=0xbfb5e370, sdr_args=0xbfb5e3dc, hostrange_args=0xbfb5e3f4,
support=15, tool_support=8192, tool_data=0xbfabe058)
at tool-config-file-common.c:1054
config_file_options = {{optionname = 0x0, option_type = 0,
option_type_arg = 0, callback_func = 0, max_count = 0, required_count = 0,
count_ptr = 0x0, option_ptr = 0x0, option_data = 0} <repeats 1024 times>}
config_file_options_len = 0
driver_type_count = 0
workaround_flags_count = 0
disable_auto_probe_count = 0
driver_address_count = 0
driver_device_count = 0
register_spacing_count = 0
username_count = 0
password_count = 0
k_g_count = 0
session_timeout_count = 0
retransmission_timeout_count = 0
authentication_type_count = 0
cipher_suite_id_count = 0
privilege_level_count = 0
quiet_cache_count = 0
sdr_cache_directory_count = 0
buffer_output_count = 0
consolidate_output_count = 0
fanout_count = 0
eliminate_count = 0
always_prefix_count = 0
bmc_config_username_count = 0
bmc_config_password_count = 0
bmc_config_k_g_count = 0
bmc_config_authentication_type_count = 0
bmc_config_cipher_suite_id_count = 0
bmc_config_privilege_level_count = 0
bmc_config_workaround_flags_count = 0
bmc_device_username_count = 0
bmc_device_password_count = 0
bmc_device_k_g_count = 0
bmc_device_authentication_type_count = 0
bmc_device_cipher_suite_id_count = 0
bmc_device_privilege_level_count = 0
bmc_device_workaround_flags_count = 0
bmc_info_username_count = 0
bmc_info_password_count = 0
bmc_info_k_g_count = 0
bmc_info_authentication_type_count = 0
bmc_info_cipher_suite_id_count = 0
bmc_info_privilege_level_count = 0
bmc_info_workaround_flags_count = 0
bmc_watchdog_workaround_flags_count = 0
ipmi_chassis_username_count = 0
ipmi_chassis_password_count = 0
ipmi_chassis_k_g_count = 0
ipmi_chassis_authentication_type_count = 0
ipmi_chassis_cipher_suite_id_count = 0
ipmi_chassis_privilege_level_count = 0
ipmi_chassis_workaround_flags_count = 0
ipmi_chassis_config_username_count = 0
ipmi_chassis_config_password_count = 0
ipmi_chassis_config_k_g_count = 0
ipmi_chassis_config_authentication_type_count = 0
ipmi_chassis_config_cipher_suite_id_count = 0
ipmi_chassis_config_privilege_level_count = 0
ipmi_chassis_config_workaround_flags_count = 0
ipmi_dcmi_username_count = 0
ipmi_dcmi_password_count = 0
ipmi_dcmi_k_g_count = 0
ipmi_dcmi_authentication_type_count = 0
ipmi_dcmi_cipher_suite_id_count = 0
ipmi_dcmi_privilege_level_count = 0
ipmi_dcmi_workaround_flags_count = 0
ipmi_fru_username_count = 0
ipmi_fru_password_count = 0
ipmi_fru_k_g_count = 0
ipmi_fru_authentication_type_count = 0
ipmi_fru_cipher_suite_id_count = 0
ipmi_fru_privilege_level_count = 0
ipmi_fru_workaround_flags_count = 0
ipmi_oem_username_count = 0
ipmi_oem_password_count = 0
ipmi_oem_k_g_count = 0
ipmi_oem_authentication_type_count = 0
ipmi_oem_cipher_suite_id_count = 0
ipmi_oem_privilege_level_count = 0
ipmi_oem_workaround_flags_count = 0
ipmi_pef_config_username_count = 0
ipmi_pef_config_password_count = 0
ipmi_pef_config_k_g_count = 0
ipmi_pef_config_authentication_type_count = 0
ipmi_pef_config_cipher_suite_id_count = 0
ipmi_pef_config_privilege_level_count = 0
ipmi_pef_config_workaround_flags_count = 0
ipmi_pet_username_count = 0
ipmi_pet_password_count = 0
ipmi_pet_k_g_count = 0
ipmi_pet_authentication_type_count = 0
ipmi_pet_cipher_suite_id_count = 0
ipmi_pet_privilege_level_count = 0
ipmi_pet_workaround_flags_count = 0
ipmi_raw_username_count = 0
ipmi_raw_password_count = 0
ipmi_raw_k_g_count = 0
ipmi_raw_authentication_type_count = 0
ipmi_raw_cipher_suite_id_count = 0
ipmi_raw_privilege_level_count = 0
ipmi_raw_workaround_flags_count = 0
ipmi_sel_username_count = 0
ipmi_sel_password_count = 0
ipmi_sel_k_g_count = 0
ipmi_sel_authentication_type_count = 0
ipmi_sel_cipher_suite_id_count = 0
ipmi_sel_privilege_level_count = 0
ipmi_sel_workaround_flags_count = 0
ipmi_sensors_username_count = 0
ipmi_sensors_password_count = 0
ipmi_sensors_k_g_count = 0
ipmi_sensors_authentication_type_count = 0
ipmi_sensors_cipher_suite_id_count = 0
ipmi_sensors_privilege_level_count = 0
ipmi_sensors_workaround_flags_count = 0
ipmi_sensors_config_username_count = 0
ipmi_sensors_config_password_count = 0
ipmi_sensors_config_k_g_count = 0
ipmi_sensors_config_authentication_type_count = 0
ipmi_sensors_config_cipher_suite_id_count = 0
ipmi_sensors_config_privilege_level_count = 0
ipmi_sensors_config_workaround_flags_count = 0
ipmiconsole_username_count = 0
ipmiconsole_password_count = 0
ipmiconsole_k_g_count = 0
ipmiconsole_authentication_type_count = 0
ipmiconsole_cipher_suite_id_count = 0
ipmiconsole_privilege_level_count = 0
ipmiconsole_workaround_flags_count = 0
ipmipower_username_count = 0
ipmipower_password_count = 0
ipmipower_k_g_count = 0
ipmipower_authentication_type_count = 0
ipmipower_cipher_suite_id_count = 0
ipmipower_privilege_level_count = 0
ipmipower_workaround_flags_count = 0
bmc_config_data = {verbose_count = 0, verbose_count_count = 0}
bmc_config_data_ptr = (struct config_file_data_bmc_config *) 0x0
bmc_info_data = {interpret_oem_data = 0, interpret_oem_data_count = 0}
bmc_info_data_ptr = (struct config_file_data_bmc_info *) 0x0
bmc_watchdog_data = {logfile = 0x0, logfile_count = 0, no_logging = 0,
no_logging_count = 0}
bmc_watchdog_data_ptr = (struct config_file_data_bmc_watchdog *) 0x0
ipmi_chassis_config_data = {verbose_count = 0, verbose_count_count = 0}
ipmi_chassis_config_data_ptr = (
struct config_file_data_ipmi_chassis_config *) 0x0
ipmi_dcmi_data = {interpret_oem_data = 0, interpret_oem_data_count = 0}
ipmi_dcmi_data_ptr = (struct config_file_data_ipmi_dcmi *) 0x0
ipmi_fru_data = {verbose_count = 0, verbose_count_count = 0,
skip_checks = 0, skip_checks_count = 0, interpret_oem_data = 0,
interpret_oem_data_count = 0}
ipmi_fru_data_ptr = (struct config_file_data_ipmi_fru *) 0x0
ipmi_oem_data = {verbose_count = 0, verbose_count_count = 0}
ipmi_oem_data_ptr = (struct config_file_data_ipmi_oem *) 0x0
ipmi_pef_config_data = {verbose_count = 0, verbose_count_count = 0}
ipmi_pef_config_data_ptr = (struct config_file_data_ipmi_pef_config
*) 0x0
ipmi_pet_data = {verbose_count = 0, verbose_count_count = 0,
output_event_severity = 0, output_event_severity_count = 0,
output_event_state = 0, output_event_state_count = 0,
event_state_config_file = 0x0, event_state_config_file_count = 0,
interpret_oem_data = 0, interpret_oem_data_count = 0,
entity_sensor_names = 0, entity_sensor_names_count = 0,
no_sensor_type_output = 0, no_sensor_type_output_count = 0,
comma_separated_output = 0, comma_separated_output_count = 0,
no_header_output = 0, no_header_output_count = 0, non_abbreviated_units = 0,
non_abbreviated_units_count = 0}
ipmi_pet_data_ptr = (struct config_file_data_ipmi_pet *) 0x0
ipmi_sel_data = Error accessing memory address 0xbfa94a88: Bad address.

Sergey Zaykov <sergeyzaykov>
Wed 22 Aug 2012 12:43:11 AM UTC, comment #6:

(gdb) bt
#0 0x0805dcba in config_file_parse (filename=0x0, no_error_if_not_found=0,
cmd_args=0xbfb5e370, sdr_args=0xbfb5e3dc, hostrange_args=0xbfb5e3f4,
support=15, tool_support=8192, tool_data=0xbfabe058)
at tool-config-file-common.c:1054
#1 0x0804f78c in _ipmi_sensors_config_file_parse (cmd_args=0xbfb5e370)
at ipmi-sensors-argp.c:356
#2 0x0804fdca in ipmi_sensors_argp_parse (argc=1, argv=0xbfbfe6e0,
cmd_args=0xbfb5e370) at ipmi-sensors-argp.c:532
#3 0x0804ee2d in main (argc=1, argv=0xbfbfe6e0) at ipmi-sensors.c:1676

(gdb) frame
#0 0x0805dcba in config_file_parse (filename=0x0, no_error_if_not_found=0,
cmd_args=0xbfb5e370, sdr_args=0xbfb5e3dc, hostrange_args=0xbfb5e3f4,
support=15, tool_support=8192, tool_data=0xbfabe058)
at tool-config-file-common.c:1054
1054 {

Sergey Zaykov <sergeyzaykov>
Wed 22 Aug 2012 12:37:25 AM UTC, comment #5:

So line 1054 puts me a the brace "{" in the below:

int
config_file_parse (const char *filename,
int no_error_if_not_found,
struct common_cmd_args *cmd_args,
struct sdr_cmd_args *sdr_args,
struct hostrange_cmd_args *hostrange_args,
unsigned int support,
unsigned int tool_support,
void *tool_data)
{
struct conffile_option config_file_options[CONFIG_FILE_OPTIONS_MAX];

I don't know if the code is slightly modified for distribution in BSD. But perhaps the segfault comes from the config_file_options[] array being too big for you process' stack? In bash on linux this can be modified with 'ulimit' or with 'limit' in tcsh. Does that help?

Albert Chu <chu11>
Project Administrator
Wed 22 Aug 2012 12:24:32 AM UTC, comment #4:

(gdb) run
Starting program: /usr/local/sbin/ipmi-sensors
[New LWP 100493]
[New Thread 28901140 (LWP 100493/initial thread)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 28901140 (LWP 100493/initial thread)]
0x0805dcba in config_file_parse (filename=0x0, no_error_if_not_found=0,
cmd_args=0xbfb5e370, sdr_args=0xbfb5e3dc, hostrange_args=0xbfb5e3f4,
support=15, tool_support=8192, tool_data=0xbfabe058)
at tool-config-file-common.c:1054
1054 {
(gdb)

I try to make coredump later.

Sergey Zaykov <sergeyzaykov>
Tue 21 Aug 2012 05:15:25 PM UTC, comment #3:

Is there any way you can get a core dump and a gdb backtrace? I don't have a BSD system or an i386 system. It may be a portability issue with i386 or with the BSD drivers.

Albert Chu <chu11>
Project Administrator
Tue 21 Aug 2012 04:32:38 PM UTC, comment #2:

acc:/home/acc107_3>ipmi-sensors --version
ipmi-sensors - 1.1.7

Sergey Zaykov <sergeyzaykov>
Thu 16 Aug 2012 10:03:26 PM UTC, comment #1:

What version of ipmi-sensors was running? You can find this via ipmi-sensors --version.

Albert Chu <chu11>
Project Administrator
Thu 16 Aug 2012 05:21:17 PM UTC, original submission:

Runing ipmi-sensors without arguments make segmentation fault.

About OS: uname -a
FreeBSD acc.acc.tula.ru 8.3-RELEASE-p3 FreeBSD 8.3-RELEASE-p3 #17: Wed Jun 13 16:58:08 MSK 2012 root@acc.acc.tula.ru:/usr/obj/usr/src/sys/Z i386

Kernel config:
egrep -i "(ipmi|temp)" /sys/i386/conf/Z
device coretemp
device ipmi

kldstat
Id Refs Address Size Name
1 25 0xc0400000 83e6e8 kernel
2 1 0xc0c3f000 3e38 ulpt.ko
3 1 0xc0c43000 19d0 accf_data.ko
4 1 0xc0c45000 23a4 accf_http.ko
5 1 0xc0c48000 4be0 cuse4bsd.ko
6 1 0xc7cf1000 4000 nullfs.ko
7 1 0xc7d76000 c000 unionfs.ko
8 1 0xc834d000 8000 snd_uaudio.ko
9 2 0xc8355000 4b000 sound.ko
10 1 0xc890f000 4000 logo_saver.ko
11 1 0xc8a00000 3000 if_ef.ko

Motherboard Intel S3210SH

BIOS Information
Vendor: Intel Corporation
Version: S3200X38.86B.00.00.0030.101220071709
Release Date: 10/12/2007

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by sergeyzaykov (Posted a comment)
  • -unavailable- added by chu11 (Posted a comment)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follows 1 latest change.

    Date Changed By Updated Field Previous Value => Replaced By
    Mon 17 Dec 2012 06:01:27 PM UTCchu11Open/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1