Bug 54223

Summary: AH00554 error when runtime configuration Includes a directory
Product: Apache httpd-2 Reporter: Derek Poon <apachebugs>
Component: Runtime ConfigAssignee: Apache HTTPD Bugs Mailing List <bugs>
Status: NEW ---    
Severity: normal CC: apachebugs
Priority: P2 Keywords: FixedInTrunk
Version: 2.4.3   
Target Milestone: ---   
Hardware: All   
OS: All   
Attachments: restore ability to add a single dir w/o /*

Description Derek Poon 2012-11-29 00:31:10 UTC
Error message says...

AH00554: Access to file /etc/apache2/conf.d/ denied by server: not a regular file
apache2: Syntax error on line 227 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/conf.d/: Bad file descriptor

To reproduce...

The server root is /etc/apache2.
The configuration file /etc/apache2/apache2.conf contains:
  Include conf.d/
Run `httpd -t -f /etc/apache2/apache2.conf`

This is a bug because...
It used to work in Apache 2.2, but fails in Apache 2.4.3.  Nothing in the release notes suggests that it was intentionally changed, so it's a regression.

Suggested workaround...
Include conf.d/*

GDB stack trace...

881	        ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL, APLOGNO(00554)
(gdb) bt
#0  ap_pcfg_openfile (ret_cfg=0x7fffffffdb58, p=0x6a9138, 
    name=0x774788 "/etc/apache2/conf.d/") at util.c:881
#1  0x000000000045a0bc in ap_process_resource_config (s=0x6d5cb8, 
    fname=0x774788 "/etc/apache2/conf.d/", conftree=0x7fffffffdca8, 
    p=0x6a9138, ptemp=0x70c5c8) at config.c:1789
#2  0x000000000045a95d in ap_process_fnmatch_configs (s=0x6d5cb8, 
    fname=0x774788 "/etc/apache2/conf.d/", conftree=0x7fffffffdca8, 
    p=0x6a9138, ptemp=0x70c5c8, optional=0) at config.c:2016
#3  0x000000000044555b in include_config (cmd=0x7fffffffe1f0, 
    dummy=0x7fffffffe028, name=0x774778 "conf.d/") at core.c:2979
#4  0x0000000000457e6f in invoke_cmd (cmd=0x485bf0, parms=0x7fffffffe1f0, 
    mconfig=0x7fffffffe028, args=0x70c71f "") at config.c:909
#5  0x0000000000459c54 in execute_now (cmd_line=0x774718 "Include", 
    args=0x70c718 "conf.d/", parms=0x7fffffffe1f0, p=0x6a9138, 
    ptemp=0x70c5c8, sub_tree=0x7fffffffe028, parent=0x0) at config.c:1666
#6  0x0000000000458b9c in ap_build_config_sub (p=0x6a9138, 
    temp_pool=0x70c5c8, l=0x70c710 "Include conf.d/", parms=0x7fffffffe1f0, 
    current=0x7fffffffe0f8, curr_parent=0x7fffffffe0f0, conftree=0x6a0180)
    at config.c:1131
#7  0x00000000004593e0 in ap_build_config (parms=0x7fffffffe1f0, p=0x6a9138, 
    temp_pool=0x70c5c8, conftree=0x6a0180) at config.c:1383
#8  0x000000000045a135 in ap_process_resource_config (s=0x6d5cb8, 
    fname=0x710f90 "/etc/apache2/apache2.conf", conftree=0x6a0180, 
#9  0x000000000045b991 in ap_read_config (process=0x6a7218, ptemp=0x70c5c8, 
    filename=0x7fffffffe7ee "/etc/apache2/apache2.conf", conftree=0x6a0180)
    at config.c:2407
#10 0x000000000042dc76 in main (argc=4, argv=0x7fffffffe558) at main.c:624
Comment 1 Eric Covener 2012-11-29 00:55:07 UTC
Looks inadvertent to me
Comment 2 Eric Covener 2012-11-29 01:26:32 UTC
Created attachment 29651 [details]
restore ability to add a single dir w/o /*
Comment 3 Eric Covener 2012-11-29 01:34:38 UTC
thanks for the detailed report, fixed in r1415023 and will propose for backport.