<!-- 
RSS generated by JIRA (4.4#649-r158309) at Tue Jun 18 15:57:46 CDT 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://dev.clojure.org/jira/si/jira.issueviews:issue-xml/NREPL-30/NREPL-30.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Clojure JIRA</title>
    <link>http://dev.clojure.org/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>4.4</version>
        <build-number>649</build-number>
        <build-date>25-07-2011</build-date>
    </build-info>

<item>
            <title>[NREPL-30] Investigate hangs when server goes away</title>
                <link>http://dev.clojure.org/jira/browse/NREPL-30</link>
                <project id="10022" key="NREPL">tools.nrepl</project>
                        <description>&lt;p&gt;See &lt;a href=&quot;https://github.com/trptcolin/reply/issues/84#issuecomment-8481753&quot;&gt;https://github.com/trptcolin/reply/issues/84#issuecomment-8481753&lt;/a&gt; and maybe &lt;a href=&quot;http://code.google.com/p/counterclockwise/issues/detail?id=405&quot;&gt;http://code.google.com/p/counterclockwise/issues/detail?id=405&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="15693">NREPL-30</key>
            <summary>Investigate hangs when server goes away</summary>
                <type id="3" iconUrl="http://dev.clojure.org/jira/images/icons/task.gif">Task</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="cemerick">Chas Emerick</assignee>
                                <reporter username="cemerick">Chas Emerick</reporter>
                        <labels>
                    </labels>
                <created>Fri, 14 Sep 2012 07:39:07 -0500</created>
                <updated>Mon, 8 Oct 2012 12:42:34 -0500</updated>
                    <resolved>Mon, 8 Oct 2012 12:42:34 -0500</resolved>
                            <version>0.2.0-beta9</version>
                <version>0.2.0-beta10</version>
                                <fixVersion>0.2.0-beta10</fixVersion>
                                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="29440" author="trptcolin" created="Fri, 14 Sep 2012 09:03:52 -0500"  >&lt;p&gt;If it helps, I did observe in some testing that after the server side of the socket goes down, writing to and flushing the client socket&apos;s output stream &lt;b&gt;twice&lt;/b&gt; would bubble up a client exception. That seems a little keepalive-ish, but I&apos;m not sure whether that sort of thing would do other transports any good.&lt;/p&gt;</comment>
                    <comment id="29590" author="cemerick" created="Wed, 3 Oct 2012 12:37:43 -0500"  >&lt;p&gt;A fix for this is on master now, with commit &lt;a href=&quot;https://github.com/clojure/tools.nrepl/commit/8a5dad2045434fcc06f2878de55f7dcdefa01a1b&quot;&gt;8a5dad2045434fcc06f2878de55f7dcdefa01a1b&lt;/a&gt;.  There were a number of issues in the implementation of &lt;tt&gt;FnTransport&lt;/tt&gt; that were preventing exceptions from bubbling up as they should have been.&lt;/p&gt;

&lt;p&gt;No APIs were harmed in the course of implementing a fix.  Also, no keepalive mechanism was required (which makes me slightly suspicious that the issue has actually been fixed, but we&apos;ll see).  (Not TCP keepalive; that&apos;s irrelevant to the issue, and wouldn&apos;t help even if it were reliably standard/present.)&lt;/p&gt;

&lt;p&gt;New tests added, and manual verification against nREPL servers running in different processes looks good too.  I&apos;ll put out an &lt;tt&gt;0.2.0-beta10&lt;/tt&gt; shortly so that people can start banging on this to see if it resolves issues in downstream projects/tools.&lt;/p&gt;

&lt;p&gt;Note that I also found that it &lt;b&gt;sometimes&lt;/b&gt; requires two sends (messages here, not writes to a socket) to provoke an error when writing to a transport that had been connected to a server that was closed or otherwise went away.  Maybe it&apos;s a buffering issue?  I don&apos;t have a good theory.  Check out e.g. &lt;tt&gt;nrepl-test/transports-fail-on-disconnects&lt;/tt&gt; if you want to play around with it.&lt;/p&gt;</comment>
                    <comment id="29596" author="cemerick" created="Thu, 4 Oct 2012 17:06:36 -0500"  >&lt;p&gt;Note that the bencode transport should throw a &lt;tt&gt;java.net.SocketException&lt;/tt&gt; when its connection is lost.&lt;/p&gt;</comment>
                    <comment id="29615" author="cemerick" created="Mon, 8 Oct 2012 12:42:34 -0500"  >&lt;p&gt;Good reports received from downstream projects on the fix for this. Calling it good.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                        </customfields>
    </item>
</channel>
</rss>