On Sat, 22 Dec 2001, Stas Bekman wrote: > I think the misunderstanding started from the moment Cliff forwarded my > email, but snipped the end of it. At at the end it had: > > [Fri Dec 21 02:03:29 2001] file core.c, line 2271, assertion > "total_bytes_left > 0 && tmplen > 0" failed > [Fri Dec 21 02:03:30 2001] [error] server reached MaxClients setting, > consider raising the MaxClients setting > [Fri Dec 21 02:03:30 2001] [notice] child pid 2607 exit signal Aborted > (6), possible coredump in /home/stas/apache.org/mp-subproc/t > > I was just asking why if the code *does* the check and asserts
You must be in maintainer mode if it actually did the check. > (see the log before the stack trace), it also dumps core? Because that's what assert does. :) It exits with an Aborted signal, which triggers a coredump for debugging purposes. (coredump != SEGV) > My goal is somehow to get back the ability to take an OS specific fh > generated outside APR, convert it into apr_file_t and be able to use > send_fd optionally without specifying the length, as it was possible in > 1.3.x. Is it the case that you know whether the thing is a file or a pipe? If so, just use the correct kind of bucket directly. If you know the thing is a file and you just don't know the length, do the fseek/ftell yourself. The thing will be _way_ faster. If you give the buckets code a file descriptor and don't know the length, (assuming that were possible, which it currently isn't, unless you were to put the file into a pipe bucket), it would have to read the file 8KB at a time, rather than being able to MMAP it or sendfile() the fd. That's a massive amount of overhead that you probably want to avoid like the plague (I've benchmarked it... it's awful, even for files < 8KB). Just stop using ap_send_fd(). Use the buckets code directly. For one thing, you can save yourself some extra brigade-creation overhead, and you can probably save yourself a few calls down the filter stack as well. (And yes, the code I gave you the other day will work for files as well. While you could in theory put a file into a pipe bucket, I wouldn't recommend it.) --Cliff -------------------------------------------------------------- Cliff Woolley [EMAIL PROTECTED] Charlottesville, VA
