https://bz.apache.org/bugzilla/show_bug.cgi?id=66373

            Bug ID: 66373
           Summary: Multi chunk post data does not arrive
           Product: Apache httpd-2
           Version: 2.4.54
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mod_proxy_fcgi
          Assignee: bugs@httpd.apache.org
          Reporter: torg...@posteo.de
  Target Milestone: ---

If I make a POST request to apache configured with event/fpm which is chunked
and has more than 1 chunk, then the data does not arrive at the php script.

If I use prefork instead of event/fpm all works fine

If I make a non chunked request, or a chunked request with only one chunk, all
is fine as well.

To reproduce use CURL with post data larger than 64kb


Works fine (non chunked request):
curl -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" -X POST
-d @postdata.dat "http://test.website.de/test.php";

Failes (chunked request):
curl  -H "Transfer-Encoding: chunked" -H "Content-Type:
application/x-www-form-urlencoded;charset=UTF-8" -X POST -d @postdata.dat
"http://test.website.de/test.php";

Works fine (chunked but < 64kb):
curl  -H "Transfer-Encoding: chunked" -H "Content-Type:
application/x-www-form-urlencoded;charset=UTF-8" -X POST -d @postdata_small.dat
"http://test.website.de/test.php";

Note that php://input as well as $_POST is empty when it fails.

I noticed this as some of our clients chunk POST requests already after 1024Kb


I am using 2.4.54 

httpd -V
[Fri Dec 02 09:39:38.916798 2022] [so:warn] [pid 11980:tid 140066409769152]
AH01574: module systemd_module is already loaded, skipping
Server version: Apache/2.4.54 (codeit)
Server built:   Jun  8 2022 09:34:58
Server's Module Magic Number: 20120211:124
Server loaded:  APR 1.7.0, APR-UTIL 1.6.1, PCRE 10.23 2017-02-14
Compiled using: APR 1.7.0, APR-UTIL 1.6.1, PCRE 10.23 2017-02-14
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_PROC_PTHREAD_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"


apachectl -M
Loaded Modules:
 core_module (static)
 so_module (static)
 http_module (static)
 access_compat_module (shared)
 actions_module (shared)
 alias_module (shared)
 allowmethods_module (shared)
 auth_basic_module (shared)
 auth_digest_module (shared)
 authn_anon_module (shared)
 authn_core_module (shared)
 authn_dbd_module (shared)
 authn_dbm_module (shared)
 authn_file_module (shared)
 authn_socache_module (shared)
 authz_core_module (shared)
 authz_dbd_module (shared)
 authz_dbm_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_owner_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 brotli_module (shared)
 cache_module (shared)
 cache_disk_module (shared)
 cache_socache_module (shared)
 data_module (shared)
 dbd_module (shared)
 deflate_module (shared)
 dir_module (shared)
 dumpio_module (shared)
 echo_module (shared)
 env_module (shared)
 expires_module (shared)
 ext_filter_module (shared)
 filter_module (shared)
 headers_module (shared)
 include_module (shared)
 info_module (shared)
 log_config_module (shared)
 logio_module (shared)
 macro_module (shared)
 mime_magic_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 remoteip_module (shared)
 reqtimeout_module (shared)
 request_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 slotmem_plain_module (shared)
 slotmem_shm_module (shared)
 socache_dbm_module (shared)
 socache_memcache_module (shared)
 socache_redis_module (shared)
 socache_shmcb_module (shared)
 status_module (shared)
 substitute_module (shared)
 suexec_module (shared)
 unique_id_module (shared)
 unixd_module (shared)
 userdir_module (shared)
 version_module (shared)
 vhost_alias_module (shared)
 watchdog_module (shared)
 dav_module (shared)
 dav_fs_module (shared)
 dav_lock_module (shared)
 lua_module (shared)
 mpm_event_module (shared)
 proxy_module (shared)
 lbmethod_bybusyness_module (shared)
 lbmethod_byrequests_module (shared)
 lbmethod_bytraffic_module (shared)
 lbmethod_heartbeat_module (shared)
 proxy_ajp_module (shared)
 proxy_balancer_module (shared)
 proxy_connect_module (shared)
 proxy_express_module (shared)
 proxy_fcgi_module (shared)
 proxy_fdpass_module (shared)
 proxy_ftp_module (shared)
 proxy_http_module (shared)
 proxy_hcheck_module (shared)
 proxy_scgi_module (shared)
 proxy_uwsgi_module (shared)
 proxy_wstunnel_module (shared)
 ssl_module (shared)
 systemd_module (shared)
 cgid_module (shared)
 perl_module (shared)
 fcgid_module (shared)
 php7_module (shared)
 apreq_module (shared)



php.conf:

<IfModule  mod_php7.c>

    # Tell the PHP interpreter to handle files with a .php extension.

    # Proxy declaration
    <Proxy "fcgi://localhost/">

    # we must declare a parameter in here (doesn't matter which) or it'll not
register the proxy ahead of time
        ProxySet disablereuse=off       
    </Proxy>

    # Redirect to the proxy
    <FilesMatch \.php$>
        SetHandler "proxy:fcgi://localhost:9000"
    </FilesMatch>

</IfModule>

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscr...@httpd.apache.org
For additional commands, e-mail: bugs-h...@httpd.apache.org

Reply via email to