<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hi All<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We have a weird issue and suspect its possibly a memory leak. I need some guidance as to how to debug this and solve it.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We use Dancer2 and Starman, fronted by Apache<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Use Case:<o:p></o:p></p>
<p class="MsoNormal">We have an image gallery where the user can browse images based on a variety of criteria. The gallery is page driven, and the user navigates using previous/next buttons. Each page displays 36 images.<o:p></o:p></p>
<p class="MsoNormal">Although starman handles all routes, it does not handle the delivery of the images. We use an apache module called xsend which offloads the delivery to apache and allows starman to focus on data queries.<o:p></o:p></p>
<p class="MsoNormal">We find that for certain clients who use the gallery heavily, after many page navigations some of the images on the page cause 302’s and loses the session, so the user has to login again. We can run the image route in another browser session
 and its fine.<o:p></o:p></p>
<p class="MsoNormal">The “break” does not happen at a consistent place.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The code that does xsend relies on “halt” as follows:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Sub send_the_file{<o:p></o:p></p>
<p class="MsoNormal" style="text-indent:36.0pt"># do the queries to get the image details and physical path<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="text-indent:36.0pt"># now make the xsend request:<o:p></o:p></p>
<p class="MsoNormal">               header('Content-Type' => $mime);<o:p></o:p></p>
<p class="MsoNormal">               header("X-Sendfile" => $file);<o:p></o:p></p>
<p class="MsoNormal">               header('Content-Disposition' => "inline; filename=\"".encode_utf8($file_name)."\";");<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">               debug('halting for xsend');<o:p></o:p></p>
<p class="MsoNormal">               halt('xsend');<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This method is called through multiple code layers. >From what I can tell, halt replace return, but it also says that it stops processing at the point of halt. We have been looking through logs and cannot see anything specific apart from
 the 302’s and loss of session.<o:p></o:p></p>
<p class="MsoNormal">Any guidance on how to proceed with this would be much appreciated<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Z<o:p></o:p></p>
</div>
</body>
</html>