[Varnish] #736: Migration to Cygwin plataform

Varnish varnish-bugs at varnish-cache.org
Fri Dec 17 04:03:40 CET 2010

#736: Migration to Cygwin plataform
  Reporter:  jdzst    |        Type:  enhancement    
    Status:  closed   |    Priority:  normal         
 Milestone:           |   Component:  build          
   Version:           |    Severity:  normal         
Resolution:  invalid  |    Keywords:  cygwin, windows

Comment(by jdzst):


 I have updated my version of varnish for cygwin. It is based on subversion
 trunk (r5646)

 The new improvements are:
 *  Better compilation of VCL archives (in the past they were compiled
 using objects from varnish compilation directory)
 * Fixed regresion tests: varnishtest program server_thread function in
 vtc_server.c, after "fd = accept(s->sock, addr, &l);" If socket returned
 is wrong, it is not used.
 * Fixed regresion tests: varnishtest program is blocked in some tests.
 Test is executed succesfully  but varnishtest program is blocked when it
 stops server thread, so varnishtest timeouts and FAILS.
   - Server thread is blocked in TCP accept, waiting a request
 (server_thread function in vtc_server.c file) and main varnishtest is
 blocked in pthread_join (server_wait function in vtc_server.c file)
 waiting server thread to end.
   - In linux, pthread_join unblocks thread from its TCP accept but in
 Cygwin it does not.
   - The solution is to send a signal using pthread_kill (only in cygwin).
 The signal unblocks thread from its TCP accept.
   - I have tested varnish cache in cygwin against one apache server and it
 works fine. The patch applied in a Solaris and Linux server works

 After this changes, the result of regression test are: 9 tests failed, 202
 tests passed

 Failed tests:

 '''c00005.vtc "Test simple ACL"'''
 error IPv6 [DNS lookup(::): hostname nor servname provided, or not
 CYGWIN does not support IPv6 in Windows XP. Maybe it works in newer

 '''s00002.vtc "Check grace with sick backends"'''
 "Write failed: Bad file descriptor"

 '''b00015.vtc "Check synthetic error page caching"  and  v00009.vtc "Test
 round robin director"'''
 bind(): Address already in use  [Assert error in server_start(),
 vtc_server.c line 183: Condition(s->sock >= 0) not true.]
 UNKNOWN ERROR: test server is started two times, the second time it says
 that port it is in use

 '''VMOD regresion tests:  m00000.vtc, m00001.vtc, m00002.vtc, m00003.vtc
 and m00004.vtc'''
 CYGWIN does not find new VMOD shared libraries
 A fix is need in order to load shared libraries of VMOD


 #     top  TEST tests/b00015.vtc FAILED (7.039)
 #     top  TEST tests/c00005.vtc FAILED (7.766)
 #     top  TEST tests/m00000.vtc FAILED (3.131)
 #     top  TEST tests/m00001.vtc FAILED (3.007)
 #     top  TEST tests/m00002.vtc FAILED (2.830)
 #     top  TEST tests/m00003.vtc FAILED (2.894)
 #     top  TEST tests/m00004.vtc FAILED (3.279)
 #     top  TEST tests/s00002.vtc FAILED (9.977)
 #     top  TEST tests/v00009.vtc FAILED (5.509)

Ticket URL: <http://varnish-cache.org/trac/ticket/736#comment:11>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator

More information about the varnish-bugs mailing list