<div dir="ltr"><div><br></div><div>When I debug the crash, when oops occurs, the cstate of connection is C_WF_REPORT_PARAMS but not C_TEAR_DOWN.</div><div><br></div>So this problem may also occurs up to 8.4.10 in may opinion. <br><div><br></div><div>the order of change state and init ack_sender in conn_connect function is:<br></div><div><br><div>```<br>    rv = conn_request_state(connection, NS(conn, C_WF_REPORT_PARAMS), CS_VERBOSE);  &lt;-- change cstate here<br>    if (rv &lt; SS_SUCCESS || connection-&gt;cstate != C_WF_REPORT_PARAMS) {<br>        clear_bit(STATE_SENT, &amp;connection-&gt;flags);<br>        return 0;<br>    }<br><br>    drbd_thread_start(&amp;connection-&gt;ack_receiver);<br>    /* opencoded create_singlethread_workqueue(),<br>     * to be able to use format string arguments */<br>    connection-&gt;ack_sender =                                                     &lt;-- init ack_sender here<br>#if LINUX_VERSION_CODE &gt;= KERNEL_VERSION(3,3,0)<br>        alloc_ordered_workqueue(&quot;drbd_as_%s&quot;, WQ_MEM_RECLAIM, connection-&gt;resource-&gt;name);<br>#else<br>        create_singlethread_workqueue(&quot;drbd_ack_sender&quot;);<br>#endif<br>    if (!connection-&gt;ack_sender) {<br>        drbd_err(connection, &quot;Failed to create workqueue ack_sender\n&quot;);<br>        return 0;<br>    }<br><br>```</div><div><br></div><div>and the oops point valid ack_sender by cstate:</div><div><br></div><div>```</div><div>    if (connection-&gt;cstate &gt;= C_WF_REPORT_PARAMS) {<br>        kref_get(&amp;device-&gt;kref); /* put is in drbd_send_acks_wf() */<br>        if (!queue_work(connection-&gt;ack_sender, &amp;peer_device-&gt;send_acks_work))  &lt;-- oops here.<br>            kref_put(&amp;device-&gt;kref, drbd_destroy_device);<br>    }<br></div><div>```<br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-08-10 18:21 GMT+08:00 Lars Ellenberg <span dir="ltr">&lt;<a href="mailto:lars.ellenberg@linbit.com" target="_blank">lars.ellenberg@linbit.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Aug 09, 2017 at 05:20:22PM +0800, li songmin wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; when I upgrade fdrbd rom 8.3.15 to 8.4.6-5, there is an oops cause by NULL<br>
&gt; pointer Error.<br>
<br>
</span>We are at 8.4.10 already.<br>
Just saying.<br>
<span class=""><br>
&gt;<br>
&gt; upgrade step as follow:<br>
&gt;<br>
&gt; 1.  primary node work as normal<br>
&gt; 2. stop drbd 8.3.15 on secondary node, and upgrade it to 8.4.6-5.<br>
&gt; 3. start secondary node, now data begin sync from primary node.<br>
&gt; 4. upgrade primary node with follow step<br>
&gt;      1. stop business service on drbd<br>
&gt;       2. disconnect drbd for unmount quickly  &lt;--  oops on secondary node<br>
&gt; here?<br>
<br>
</span>Why disconnect?<br>
<span class=""><br>
&gt;       3.  umount filesystem<br>
&gt;       4. primary -&gt; secondary<br>
&gt;       5. connect drbd and waiting sync complete.<br>
&gt;       6. business service may start on secondary node now.<br>
&gt;       7. stop drbd 8.3.15 on primary node, and upgrade it to 8.4.6-5.<br>
&gt;<br>
&gt; call stack:<br>
<br>
</span><span class="">&gt; &lt;4&gt;[66071017.155051] Modules linked in: softdog drbd(FN)<br>
<br>
</span>What did you need to force the module for?<br>
Probably *that* is your problem right there.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
: Lars Ellenberg<br>
: LINBIT | Keeping the Digital World Running<br>
: DRBD -- Heartbeat -- Corosync -- Pacemaker<br>
<br>
DRBD® and LINBIT® are registered trademarks of LINBIT<br>
__<br>
please don&#39;t Cc me, but send to list -- I&#39;m subscribed<br>
______________________________<wbr>_________________<br>
drbd-user mailing list<br>
<a href="mailto:drbd-user@lists.linbit.com">drbd-user@lists.linbit.com</a><br>
<a href="http://lists.linbit.com/mailman/listinfo/drbd-user" rel="noreferrer" target="_blank">http://lists.linbit.com/<wbr>mailman/listinfo/drbd-user</a><br>
</font></span></blockquote></div><br></div>