Update on my solution for anyones else who has the same problem...

Thanks for the input Brendan. Although setting those properties
(maxPostSize and SSLRenegBufferSize and a few others) didn't make a
difference, I think you had the underlying cause right. The solution
that worked for me was to execute maven using a different wagon:

mvn -Dmaven.wagon.provider.http=httpclient clean install


See http://maven.apache.org/guides/mini/guide-wagon-providers.html for
more info.



On Thu, Dec 10, 2009 at 5:23 PM, Brendan Sibre <[email protected]> wrote:
> If you're running Apache 2.2, take a look at
> http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslrenegbuffersize
>
> Essentially, it might not really be the size, it might be the size in
> combination with
> opening a new connection.  If there is already an active SSL connection it
> won't need
> to be renegotiated during the post of the file.  If it needs to create a new
> connection
> then it might fail for larger files.
>
> Tomcat has a similar setting, maxPostSize you can set on the connector so
> you might need to
> set both.
>
> This has bitten me with other similar things and it's really frustrating.
> I'm not quite sure why the
> client can't wait for the renegotiation to complete before sending the file.
>
> On Thu, Dec 10, 2009 at 8:17 PM, K J <[email protected]> wrote:
>
>> I have a very strange problem when I try to deploy artifacts. For
>> certain artifacts, the deployment fails with the message 'Error
>> deploying artifact: Error transferring file...Error writing to server'
>> (I included the stacktrace below). It appears to be related to the
>> size of the artifact, but here's the kicker -- the size restriction
>> isn't consistent acrosss artifact types. I can deploy an 11M WAR, but
>> can't deploy a 30M WAR. I can deploy a 96K JAR, but can't deploy a
>> 128K JAR. (Sorry for the broad size range, I haven't had enough time
>> to narrow it down further).
>>
>> I don't know if it's related, but I also noticed an oddity when I was
>> trying to narrow down the 'breaking point' for the size. I set up a
>> test project which deploys a jar and added images as resources to
>> build up the size. After passing the size threshold (which caused the
>> deploy to fail), I would remove the newest image and try to rebuild,
>> but now the deploy would fail with a 'connection reset' or 'connection
>> reset by peer: socket write error' message. Without making any
>> changes, I rerun 'mvn clean deploy' or 'mvn deploy. Most of the time
>> everything deploys fine; although sometimes it takes two tries before
>> it succeeds.  For clarity, I outlined those steps below:
>>
>> 1.) Add image. Build and deploy fine. Size 96K.
>> 2.) Add another image. Build fine, deploy breaks: Error writing to
>> server. Size 128K.
>> 3.) Remove last image. Build fine, deploy breaks: Connection reset. Size
>> 96K.
>> 4.) No changes. Build and deploy fine. Size 96K.
>>
>>  Some additional information:
>> * I experience this problem using both Maven 2.0.9 and 2.2.1.
>> * Our repository is managed by Nexus (deployed to Tomcat with SSL from
>> apache). Nexus might be part of the problem, but I've checked some of
>> the logs, but I can't find any indication of errors on that side of
>> things.
>> * Our network uses a socks proxy (v5).
>>
>> Lastly, here is the stack trace (and a bit of the Maven output):
>>
>> [DEBUG] Configuring mojo
>> 'org.apache.maven.plugins:maven-deploy-plugin:2.4:deploy' -->
>> [DEBUG]   (f) artifact = com.cdmtech.icodes.ciw:test:jar:0.0.1-SNAPSHOT
>> [DEBUG]   (f) attachedArtifacts = []
>> [DEBUG]   (f) deploymentRepository =
>> Repository[snapshots|
>> https://hudson149/nexus/content/repositories/snapshots]
>> [DEBUG]   (s) localRepository = Repository[local|file://C:\Documents
>> and Settings\kj\.m2\repository]
>> [DEBUG]   (f) packaging = jar
>> [DEBUG]   (f) pomFile =
>>
>> C:\eclipse\eclipse-workspaces\eclipse-jee-ganymede-3.4.2\m2eclipse\ciw\test\pom.xml
>> [DEBUG]   (f) skip = false
>> [DEBUG]   (f) updateReleaseInfo = false
>> [DEBUG] -- end configuration --
>> [INFO] [deploy:deploy {execution: default-deploy}]
>> [INFO] Retrieving previous build number from snapshots
>> [DEBUG] Using Wagon implementation lightweight from default mapping
>> for protocol https
>> [DEBUG] Checking for pre-existing User-Agent configuration.
>> [DEBUG] Adding User-Agent configuration.
>> [DEBUG] Connecting to repository: 'snapshots' with url:
>> 'https://hudson149/nexus/content/repositories/snapshots'.
>> [DEBUG] Using Wagon implementation lightweight from default mapping
>> for protocol https
>> [DEBUG] Using Wagon implementation lightweight from default mapping
>> for protocol https
>> [DEBUG] Checking for pre-existing User-Agent configuration.
>> [DEBUG] Adding User-Agent configuration.
>> [DEBUG] not adding permissions to wagon connection
>> Uploading:
>> https://hudson149/nexus/content/repositories/snapshots/ciw/test/0.0.1-SNAPSHOT/test-0.0.1-20091210.183044-14.jar
>> 4/128K<https://hudson149/nexus/content/repositories/snapshots/ciw/test/0.0.1-SNAPSHOT/test-0.0.1-20091210.183044-14.jar%0A4/128K>
>> ...
>> 128/128K
>> [DEBUG] Error writing to server
>> java.io.IOException: Error writing to server
>>       at
>> sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:438)
>>       at
>> sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:450)
>>       at
>> sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1002)
>>       at
>> java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
>>       at
>> sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318)
>>       at
>> org.apache.maven.wagon.providers.http.LightweightHttpWagon.finishPutTransfer(LightweightHttpWagon.java:185)
>>       at
>> org.apache.maven.wagon.AbstractWagon.putTransfer(AbstractWagon.java:413)
>>       at
>> org.apache.maven.wagon.AbstractWagon.transfer(AbstractWagon.java:392)
>>       at
>> org.apache.maven.wagon.AbstractWagon.putTransfer(AbstractWagon.java:365)
>>       at org.apache.maven.wagon.StreamWagon.put(StreamWagon.java:163)
>>       at
>> org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:317)
>>       at
>> org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:227)
>>       at
>> org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:107)
>>       at
>> org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:173)
>>       at
>> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
>>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
>>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
>>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
>>       at
>> org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
>>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>       at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>       at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>       at java.lang.reflect.Method.invoke(Method.java:597)
>>       at
>> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>>       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>>       at
>> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>>       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
>> [DEBUG] Using Wagon implementation lightweight from default mapping
>> for protocol https
>> [INFO]
>> ------------------------------------------------------------------------
>> [ERROR] BUILD ERROR
>> [INFO]
>> ------------------------------------------------------------------------
>> [INFO] Error deploying artifact: Error transferring file
>>
>> Error writing to server
>> [INFO]
>> ------------------------------------------------------------------------
>> [DEBUG] Trace
>> org.apache.maven.lifecycle.LifecycleExecutionException: Error
>> deploying artifact: Error transferring file
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
>>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
>>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
>>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
>>       at
>> org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
>>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>       at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>       at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>       at java.lang.reflect.Method.invoke(Method.java:597)
>>       at
>> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>>       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>>       at
>> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>>       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
>> Caused by: org.apache.maven.plugin.MojoExecutionException: Error
>> deploying artifact: Error transferring file
>>       at
>> org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:195)
>>       at
>> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
>>       at
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
>>       ... 17 more
>> Caused by: org.apache.maven.artifact.deployer.ArtifactDeploymentException:
>> Error deploying artifact: Error transferring file
>>       at
>> org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:121)
>>       at
>> org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:173)
>>       ... 19 more
>> Caused by: org.apache.maven.wagon.TransferFailedException: Error
>> transferring file
>>       at
>> org.apache.maven.wagon.providers.http.LightweightHttpWagon.finishPutTransfer(LightweightHttpWagon.java:213)
>>       at
>> org.apache.maven.wagon.AbstractWagon.putTransfer(AbstractWagon.java:413)
>>       at
>> org.apache.maven.wagon.AbstractWagon.transfer(AbstractWagon.java:392)
>>       at
>> org.apache.maven.wagon.AbstractWagon.putTransfer(AbstractWagon.java:365)
>>       at org.apache.maven.wagon.StreamWagon.put(StreamWagon.java:163)
>>       at
>> org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:317)
>>       at
>> org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:227)
>>       at
>> org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:107)
>>       ... 20 more
>> Caused by: java.io.IOException: Error writing to server
>>       at
>> sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:438)
>>       at
>> sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:450)
>>       at
>> sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1002)
>>       at
>> java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
>>       at
>> sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318)
>>       at
>> org.apache.maven.wagon.providers.http.LightweightHttpWagon.finishPutTransfer(LightweightHttpWagon.java:185)
>>
>> If anyone has any idea what might be causing the problem, or how to go
>> about fixing it, I would greatly appreciate the help. Let me know if
>> you need more information. Thanks in advance.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to