On 29 Jun 2020, at 09:19, Joe Orton <[email protected]> wrote:

> The litmus tests are failing, not the perl-framework tests:
> 
> https://travis-ci.org/github/apache/httpd/jobs/702768269#L2491

Ah - that’s where  I was going wrong.

> You can also see that there are segfaults logged from line 2519 onwards:
> 
> https://travis-ci.org/github/apache/httpd/jobs/702768269#L2519
> 
> Running litmus locally, the backtrace looks like this:

So the simple workaround is to be defensive against ctx->r being NULL, but I 
need to check - is there ever a legitimate reason for there to be a filled out 
ctx structure including a filename, but with no request?

Process 9883 stopped
* thread #62, stop reason = EXC_BAD_ACCESS (code=1, address=0x58)
    frame #0: 0x0000000100203e09 
httpd`dav_fs_getetag(resource=0x000000010106f1e0) at repos.c:1869:31
   1866     }
   1867 
   1868     er.vlist_validator = NULL;
-> 1869     er.request_time = ctx->r->request_time;
   1870     er.finfo = &ctx->finfo;
   1871     er.pathname = ctx->pathname;
   1872     er.fd = NULL;
Target 0: (httpd) stopped.
(lldb) print ctx
(dav_resource_private *) $0 = 0x000000010106f110
(lldb) print *ctx
(dav_resource_private) $1 = {
  pool = 0x0000000105098628
  pathname = 0x000000010106f198 
"/Users/minfrin/src/apache/sandbox/proxy/htdocs/dav/litmus/lockcoll"
  finfo = {
    pool = 0x0000000105098628
    valid = 7598960
    protection = 1877
    filetype = APR_DIR
    user = 501
    group = 20
    inode = 61244902
    device = 16777220
    nlink = 2
    size = 64
    csize = 0
    atime = 1593421218000000
    mtime = 1593421218000000
    ctime = 1593421218000000
    fname = 0x000000010106f198 
"/Users/minfrin/src/apache/sandbox/proxy/htdocs/dav/litmus/lockcoll"
    name = 0x0000000000000000
    filehand = 0x0000000000000000
  }
  r = 0x0000000000000000
}
(lldb) 

Regards,
Graham
—

Reply via email to