<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>17861</bug_id>
          
          <creation_ts>2008-11-12 03:11:47 +0300</creation_ts>
          <short_desc>Постоянные сегфолты при обработке эвентов</short_desc>
          <delta_ts>2008-11-17 17:48:02 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>powersave</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>17727</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sir Raorn">raorn</reporter>
          <assigned_to name="Damir Shayhutdinov">damir</assigned_to>
          <cc>damir</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>81000</commentid>
    <comment_count>0</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-11-12 03:11:47 +0300</bug_when>
    <thetext>Достал scripts/thinkpad_acpi_events из 0.14.0, положил в /usr/lib/powersave/scripts, прописал EVENT_OTHER=&quot;thinkpad_acpi_events&quot;.  При нажатии на Fn+F5 получаю:

Nov 12 03:01:46 centaurus acpid: received event &quot;ibm/hotkey HKEY 00000080 00001005&quot; 
Nov 12 03:01:46 centaurus acpid: notifying client 9314[0:0] 
Nov 12 03:01:46 centaurus acpid: notifying client 5480[104:114] 
Nov 12 03:01:46 centaurus acpid: completed event &quot;ibm/hotkey HKEY 00000080 00001005&quot; 
Nov 12 03:01:46 centaurus kernel: powersaved[9314]: segfault at a3a57331 ip b7e309ec sp bf84be2c error 4 in libdbus-1.so.3.4.0[b7e09000+35000]
Nov 12 03:01:46 centaurus kernel: usb 3-1: USB disconnect, address 6

restart, Fn+F5:

Nov 12 03:02:14 centaurus acpid: received event &quot;ibm/hotkey HKEY 00000080 00001005&quot; 
Nov 12 03:02:14 centaurus acpid: notifying client 9483[0:0] 
Nov 12 03:02:14 centaurus acpid: notifying client 5480[104:114] 
Nov 12 03:02:14 centaurus acpid: completed event &quot;ibm/hotkey HKEY 00000080 00001005&quot; 
Nov 12 03:02:14 centaurus kernel: powersaved[9483]: segfault at a3a57331 ip b7f329ec sp bff4e52c error 4 in libdbus-1.so.3.4.0[b7f0b000+35000]
Nov 12 03:02:15 centaurus kernel: usb 3-1: new full speed USB device using uhci_hcd and address 7

Из старого:

# bzgrep -B1 &apos;powersaved.*segfault&apos; /var/log/syslog/messages.1.bz2 
Nov  2 17:40:44 centaurus acpid: completed event &quot;battery BAT0 00000080 00000001&quot; 
Nov  2 17:42:11 centaurus kernel: powersaved[5674]: segfault at 7b6e406a ip b7e359ec sp bfa4d05c error 4 in libdbus-1.so.3.4.0[b7e0e000+35000]

Оно явно пытается пихать всякую фигню в libdbus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81101</commentid>
    <comment_count>1</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-11-14 02:15:00 +0300</bug_when>
    <thetext>-d 31:

Nov 14 02:11:03 centaurus acpid: completed event &quot;ibm/hotkey HKEY 00000080 00001005&quot; 
Nov 14 02:11:03 centaurus powersaved[13025]: DIAG (handleHWEventRequest:158) ACPI Event: &apos;ibm/hotkey HKEY 00000080 00001005&apos;
Nov 14 02:11:03 centaurus powersaved[13025]: Debug (handleHWEventRequest:170) type: ibm/hotkey, dev_name: HKEY, port: 00000080, count: 00001005
Nov 14 02:11:03 centaurus powersaved[13025]: DIAG (handleHWEventRequest:241) unknown HW event, using [other]. type &apos;ibm/hotkey&apos; dev_name &apos;HKEY&apos; port &apos;00000080&apos; count &apos;00001005&apos;
Nov 14 02:11:03 centaurus powersaved[13025]: Info (registerEvent:48) registering event no.&apos;4&apos;
Nov 14 02:11:03 centaurus powersaved[13029]: Info (execute_program:162) Going to execute external action thinkpad_acpi_events
Nov 14 02:11:03 centaurus powersaved[13029]: Info (execute_program:193) Program /usr/lib/powersave/scripts//thinkpad_acpi_events will be executed for event other. Param 1: other,Param 2: scheme_performance
Nov 14 02:11:03 centaurus powersaved[13025]: Debug (filter_function:89) 
Nov 14 02:11:03 centaurus powersaved[13025]: Info (filter_function:147) Received msg: &apos;NameOwnerChanged&apos; from interface: org.freedesktop.DBus
Nov 14 02:11:03 centaurus powersaved[13025]: Debug (filter_function:148) Obj.path &apos;/org/freedesktop/DBus&apos; from &apos;org.freedesktop.DBus&apos;
Nov 14 02:11:03 centaurus powersaved[13025]: Info (filter_function:186) Signal from org.freedesktop.DBus with member NameOwnerChanged received
Nov 14 02:11:03 centaurus powersaved[13025]: Info (filter_function:233) Message handled
Nov 14 02:11:03 centaurus powersaved[13025]: Debug (filter_function:89) 
Nov 14 02:11:03 centaurus powersaved[13025]: Info (filter_function:147) Received msg: &apos;ScriptReturn&apos; from interface: com.novell.powersave.scripts
Nov 14 02:11:03 centaurus powersaved[13025]: Debug (filter_function:148) Obj.path &apos;/com/novell/powersave/scripts&apos; from &apos;:1.96&apos;
Nov 14 02:11:03 centaurus powersaved[13025]: DIAG (filter_function:163) Method sent to Scripts interface
Nov 14 02:11:03 centaurus powersaved[13025]: DIAG (handleScriptsMessage:602) Handling Scripts request
Nov 14 02:11:03 centaurus powersaved[13025]: Debug (handleScriptsMessage:624) Script returned: event id: 4, request: 0, message: &apos;^DL^H^Hl^H^HhJ^H^HЬm╫©&apos;
Nov 14 02:11:03 centaurus powersaved[13025]: Info (checkScriptReturn:168) SCRIPT returned: Name: &apos;thinkpad_acpi_events&apos;, Return value: 0, Comment: &apos;^DL^H^Hl^H^HhJ^H^HЬm╫©&apos;
Nov 14 02:11:03 centaurus powersaved[13025]: Info (checkScriptReturn:187) SCRIPT Event other finished successfully
Nov 14 02:11:03 centaurus powersaved[13025]: Info (sendReply:344) Send error_id 0, &apos;success&apos;
Nov 14 02:11:03 centaurus kernel: powersaved[13025]: segfault at 2 ip b7eb99ec sp bfbd6abc error 4 in libdbus-1.so.3.4.0[b7e92000+35000]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81102</commentid>
    <comment_count>2</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-11-14 02:16:41 +0300</bug_when>
    <thetext>Собранное с --enable debug не сегфолтитцо.  В обычной сборке backtrace не видно:

#0  0xb7f449ec in __cxa_pure_virtual () from /usr/lib/libdbus-1.so.3
#1  0xb7f30f85 in __cxa_pure_virtual () from /usr/lib/libdbus-1.so.3
#2  0x0808085f in ?? ()
#3  0x00000f01 in ?? ()

и так далее.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81105</commentid>
    <comment_count>3</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-11-14 02:51:40 +0300</bug_when>
    <thetext>Дохнет оно в DBus_Server::sendReply(DBusMessage*, int) на вызове dbus_message_append_args().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81195</commentid>
    <comment_count>4</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-11-17 14:55:45 +0300</bug_when>
    <thetext>backtrace от libdbus:

(gdb) where
#0  0xb7f5e56b in _dbus_first_type_in_signature (str=0x8084a0c, pos=2) at dbus-marshal-basic.c:1461
#1  0xb7f46512 in _dbus_type_reader_get_current_type (reader=0xbfc7a3e8)
    at dbus-marshal-recursive.c:781
#2  0xb7f459df in byteswap_body_helper (reader=0xbfc7a3e8, walk_reader_to_end=1, 
    old_byte_order=50, new_byte_order=108, p=0x0, new_p=0x0) at dbus-marshal-byteswap.c:43
#3  0xb7f45a82 in _dbus_marshal_byteswap (signature=0x8084a0c, signature_start=2, 
    old_byte_order=50, new_byte_order=108, value_str=0x8084a48, value_pos=0)
    at dbus-marshal-byteswap.c:238
#4  0xb7f49920 in _dbus_message_byteswap (message=0x8084a08) at dbus-message.c:121
#5  0xb7f4ba5a in _dbus_message_iter_init_common (message=0x8084a08, real=0xbfc7a504, iter_type=7)
    at dbus-message.c:1711
#6  0xb7f4c460 in dbus_message_iter_init_append (message=0x8084a08, iter=0xbfc7a504)
    at dbus-message.c:2072
#7  0xb7f4b643 in dbus_message_append_args_valist (message=0x8084a08, first_arg_type=113, 
    var_args=0xbfc7a5b8 &quot;ч╔г©&quot;) at dbus-message.c:1525
#8  0xb7f4b5bb in dbus_message_append_args (message=0x8084a08, first_arg_type=113)
    at dbus-message.c:1492
#9  0x08063780 in ?? ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81203</commentid>
    <comment_count>5</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-11-17 15:56:51 +0300</bug_when>
    <thetext>Проблема в daemon/pm_interface.cpp в функции PM_Interface::handleScriptsMessage():

DBUS_ERROR PM_Interface::handleScriptsMessage(DBusMessage *msg, const string &amp;msg_member)
{
 	char dummy[] = &quot;&quot;;
...
		// get the message
		if (!liblazy_dbus_message_get_basic_arg(msg, DBUS_TYPE_STRING, &amp;dummy, 0) &lt; 0) {
			pDebug(DBG_INFO, &quot;Script returned but we could not to get the message.&quot;
			       &quot; Continuing anyway...&quot;);
			strcpy(dummy, &quot;&quot;);
		}

Падать оно перестало когда я поменял char dummy[] на char dummy[1024] (чиста поржать).  В логе всё равно мусор:

Nov 17 15:42:32 centaurus powersaved[11607]: Debug (handleScriptsMessage:624) Script returned: event id: 6, request: 0, message: &apos;4\200^H^H&apos;

Мусор тут потому, что для message надо брать не 0-й, а 2-й аргумент.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81212</commentid>
    <comment_count>6</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-11-17 17:48:02 +0300</bug_when>
    <thetext>0.15.20-alt3</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>