<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:x="urn:schemas-microsoft-com:office:excel" 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 14 (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;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 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:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        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-AU" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ve trying to install Varnish on a Raspberry pi. This has been discussed on their own forums with a general view of “it simply doesn’t work”, so I set about finding why.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Some info:<o:p></o:p></p>
<p class="MsoNormal">pi@raspberrypi ~ $ uname -a<o:p></o:p></p>
<p class="MsoNormal">Linux raspberrypi 3.2.27+ #4 PREEMPT Fri Dec 28 16:14:38 EST 2012 armv6l GNU/Linux<o:p></o:p></p>
<p class="MsoNormal">pi@raspberrypi ~ $ free<o:p></o:p></p>
<p class="MsoNormal">             total       used       free     shared    buffers     cached<o:p></o:p></p>
<p class="MsoNormal">Mem:        497132     284352     212780          0      63616     180780<o:p></o:p></p>
<p class="MsoNormal">-/+ buffers/cache:      39956     457176<o:p></o:p></p>
<p class="MsoNormal">Swap:       102396          0     102396<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Image is the Debian port “raspbian”, updated from repositories as of today.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I initially assumed the repositories were the issue and obtained varnish-3.0.3 from source. The install is fairly default, documented here:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">sudo apt-get install automake libtool<o:p></o:p></p>
<p class="MsoNormal">sh autogen.sh<o:p></o:p></p>
<p class="MsoNormal">sh configure<o:p></o:p></p>
<p class="MsoNormal">make<o:p></o:p></p>
<p class="MsoNormal">sudo make install<o:p></o:p></p>
<p class="MsoNormal">sudo vi /usr/local/etc/varnish/default.vcl<o:p></o:p></p>
<p class="MsoNormal">Setup backend servers..<o:p></o:p></p>
<p class="MsoNormal">sudo ldconfig -n /usr/local/lib/<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Varnish however, appears to crash and burn:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">pi@raspberrypi ~ $ sudo /usr/local/sbin/varnishd -f /usr/local/etc/varnish/default.vcl -s malloc,16M -a 172.31.1.50:80 -d<o:p></o:p></p>
<p class="MsoNormal">Platform: Linux,3.2.27+,armv6l,-sfile,-smalloc,-hcritbit<o:p></o:p></p>
<p class="MsoNormal">200 233<o:p></o:p></p>
<p class="MsoNormal">-----------------------------<o:p></o:p></p>
<p class="MsoNormal">Varnish Cache CLI 1.0<o:p></o:p></p>
<p class="MsoNormal">-----------------------------<o:p></o:p></p>
<p class="MsoNormal">Linux,3.2.27+,armv6l,-sfile,-smalloc,-hcritbit<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Type 'help' for command list.<o:p></o:p></p>
<p class="MsoNormal">Type 'quit' to close CLI session.<o:p></o:p></p>
<p class="MsoNormal">Type 'start' to launch worker process.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">start<o:p></o:p></p>
<p class="MsoNormal">child (19755) Started<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Pushing vcls failed:<o:p></o:p></p>
<p class="MsoNormal">CLI communication error (hdr)<o:p></o:p></p>
<p class="MsoNormal">Stopping Child<o:p></o:p></p>
<p class="MsoNormal">200 0<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Child (19755) died signal=11<o:p></o:p></p>
<p class="MsoNormal">Child cleanup complete<o:p></o:p></p>
<p class="MsoNormal">quit<o:p></o:p></p>
<p class="MsoNormal">500 22<o:p></o:p></p>
<p class="MsoNormal">Closing CLI connection<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">In order to follow the recommended process here <a href="https://www.varnish-cache.org/trac/wiki/DebuggingVarnish">
https://www.varnish-cache.org/trac/wiki/DebuggingVarnish</a>, I reconfigured with --enable-debugging-symbols --enable-diagnostics.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I went back and forth between a “default” install and “diagnostic” install three different times to confirm this, because I appreciate it doesn’t seem plausible. Regrettably, the situation experienced is that I have a fix: Compile in diagnostic
 mode. With the above configure options (I ran make clean between each new build) the Varnish service appeared to operate fine.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Whilst I could just leave diagnostics on, I’m assuming there’s load associated with this. I’ve pasted below an strace of the crashed system, but I’m just not sure how else I can debug in this situation. Is there anything else that the diagnostics
 mode does that could possibly get involved here?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[pid 18164] clock_gettime(CLOCK_REALTIME,  <unfinished ...><o:p></o:p></p>
<p class="MsoNormal">[pid 18166] <... nanosleep resumed> NULL) = 0<o:p></o:p></p>
<p class="MsoNormal">[pid 18166] mmap2(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x45e00000<o:p></o:p></p>
<p class="MsoNormal">[pid 18166] mprotect(0x45e00000, 4096, PROT_NONE) = 0<o:p></o:p></p>
<p class="MsoNormal">[pid 18166] clone(Process 18173 attached (waiting for parent)<o:p></o:p></p>
<p class="MsoNormal">Process 18173 resumed (parent 18166 ready)<o:p></o:p></p>
<p class="MsoNormal">child_stack=0x45e0efa8, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x45e0f4d8, tls=0x45e0f930, child_tidptr=0x45e0f4d8) = 18173<o:p></o:p></p>
<p class="MsoNormal">[pid 18173] set_robust_list(0x45e0f4e0, 0xc) = 0<o:p></o:p></p>
<p class="MsoNormal">[pid 18173] clock_gettime(CLOCK_REALTIME, {1357176395, 646464764}) = 0<o:p></o:p></p>
<p class="MsoNormal">[pid 18173] futex(0x45e0ebd4, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...><o:p></o:p></p>
<p class="MsoNormal">[pid 18166] nanosleep({0, 2000000},  <unfinished ...><o:p></o:p></p>
<p class="MsoNormal">[pid 18164] <... clock_gettime resumed> {1357176395, 642222934}) = 0<o:p></o:p></p>
<p class="MsoNormal">[pid 18164] --- SIGSEGV (Segmentation fault) @ 0 (0) ---<o:p></o:p></p>
<p class="MsoNormal">Process 18164 detached<o:p></o:p></p>
<p class="MsoNormal">[pid 18173] +++ killed by SIGSEGV +++<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Below you can see the syslog that covers me starting varnish twice, once with a default configure, once with the diagnostics enabled.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Jan  3 12:54:27 raspberrypi varnishd[26807]: Platform: Linux,3.2.27+,armv6l,-smalloc,-smalloc,-hcritbit<o:p></o:p></p>
<p class="MsoNormal">Jan  3 12:54:27 raspberrypi varnishd[26807]: child (26808) Started<o:p></o:p></p>
<p class="MsoNormal">Jan  3 12:54:27 raspberrypi varnishd[26807]: Child (26808) died signal=11<o:p></o:p></p>
<p class="MsoNormal">Jan  3 12:54:27 raspberrypi varnishd[26807]: Child (-1) said Child starts<o:p></o:p></p>
<p class="MsoNormal">Jan  3 13:05:04 raspberrypi varnishd[31536]: Platform: Linux,3.2.27+,armv6l,-smalloc,-smalloc,-hcritbit<o:p></o:p></p>
<p class="MsoNormal">Jan  3 13:05:04 raspberrypi varnishd[31536]: child (31537) Started<o:p></o:p></p>
<p class="MsoNormal">Jan  3 13:05:04 raspberrypi varnishd[31536]: Child (31537) said Child starts<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Finally, some info from the config log. <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">pi@raspberrypi ~/varnish-3.0.3 $ grep -i warn config.log<o:p></o:p></p>
<p class="MsoNormal">cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C [enabled by default]<o:p></o:p></p>
<p class="MsoNormal">configure:13219: WARNING: xsltproc not found – not building documentation<o:p></o:p></p>
<p class="MsoNormal">configure:13279: WARNING: rst2man not found – not building man pages<o:p></o:p></p>
<p class="MsoNormal">configure:13342: WARNING: rst2html not found – not building changelog<o:p></o:p></p>
<p class="MsoNormal">conftest.c:40:6: warning: conflicting types for built-in function 'cos' [enabled by default]<o:p></o:p></p>
<p class="MsoNormal">configure:14290: WARNING: libedit not found, disabling libedit support<o:p></o:p></p>
<p class="MsoNormal">conftest.c:72:6: warning: conflicting types for built-in function 'vprintf' [enabled by default]<o:p></o:p></p>
<p class="MsoNormal">configure:15220: WARNING: won't look for sendfile() on armv6l-unknown-linux-gnueabihf<o:p></o:p></p>
<p class="MsoNormal">conftest.c:68:3: warning: left shift count >= width of type [enabled by default]<o:p></o:p></p>
<p class="MsoNormal">conftest.c:68:3: warning: left shift count >= width of type [enabled by default]<o:p></o:p></p>
<p class="MsoNormal">conftest.c:69:10: warning: left shift count >= width of type [enabled by default]<o:p></o:p></p>
<p class="MsoNormal">conftest.c:69:10: warning: left shift count >= width of type [enabled by default]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Sorry for the long post – but hopefully it gives us something to go on. Any information would be appreciated.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">-Josh.<o:p></o:p></p>
</div>
</body>
</html>