mod_cluster not passing on multipart to POST multipart resource
hielkehoeve Apr 30, 2014 5:03 AMWhile we are using Wildfly more seriously we are encountering some more deep problems. One serious is the fact that one of our REST resources is not receiving a MultipartInput. (This request worked with JBoss AS7)
Client:
curl -F "file=@source.zip;filename=file;type=application/zip" https://rest.product.nl/product/rest/v1/import
What we have seen is that Apache is receiving the request and proxy_ajp is passing on the request, but it is only reading 139 bytes of data. Once in Undertow we see that the request is handled as expected, the requests throws a HTTP 500 because the file is empty.
I have set all logging parameters (manager.conf, virtual host, apache2.conf) I know to DEBUG. Is there any way to get more logging than the mere 5 lines?
Our setup is Apache 2.4.6, mod_cluster 1.3.0.Final, Wildfly 8.1.0.Final-SNAPSHOT.
Resource:
@POST
@Path("file")
@Consumes("multipart/*")
public Response file(MultipartInput form);
Apache log:
[Tue Apr 29 15:45:14.513470 2014] [proxy:debug] [pid 22000:tid 139681110939392] proxy_util.c(2194): [client <ip>:64403] AH00947: connected /product/rest/v1/import <ip>:8009 [Tue Apr 29 15:45:14.522002 2014] [proxy_ajp:debug] [pid 22000:tid 139681110939392] mod_proxy_ajp.c(273): [client <ip>:64403] AH00873: data to read (max 8186 at 4) [Tue Apr 29 15:45:14.522015 2014] [proxy_ajp:debug] [pid 22000:tid 139681110939392] mod_proxy_ajp.c(287): [client <ip>:64403] AH00875: got 139 bytes of data [Tue Apr 29 15:45:14.531526 2014] [proxy_ajp:error] [pid 22000:tid 139681110939392] [client <ip>:64403] AH00992: ajp_read_header: ajp_ilink_receive failed [Tue Apr 29 15:45:14.531533 2014] [proxy_ajp:error] [pid 22000:tid 139681110939392] (120006)APR does not understand this error code: [client <ip>:64403] AH00878: read response failed from (null) (<ip>)
/etc/apache2/mods-enabled/manager.conf:
CreateBalancers 1 Maxhost 50 AllowDisplay On UseAlias 1 MemManagerFile /var/log/apache2/mod_manager PersistSlots On ReduceDisplay On <IfModule manager_module> Listen <ip>:8888 ManagerBalancerName balancer <VirtualHost <ip>:8888> KeepAliveTimeout 300 MaxKeepAliveRequests 0 EnableMCPMReceive <Location /> Order deny,allow Require all granted </Location> LogLevel debug </VirtualHost> </IfModule>
/etc/apache2/sites-enabled/rest.product.nl.conf:
<VirtualHost *:443>
ServerName rest.product.nl
ErrorLog /var/log/apache2/rest.product.nl-ssl_error_log
TransferLog /var/log/apache2/rest.product.nl-ssl_access_log
LogLevel debug
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/ssl/certs/wild.product.nl.pem
SSLCertificateKeyFile /etc/ssl/private/wild.product.nl.key
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /var/log/apache2/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
KeepAliveTimeout 60
MaxKeepAliveRequests 0
ProxyPass / balancer://product stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse / balancer://product/
ProxyPreserveHost On
<Location />
Order deny,allow
Allow from All
</Location>
</VirtualHost>