Well, this is interesting.

A little background.
I have an admin account on the archiva server.  The password is
"expired", but I don't want to change it.  So I haven't changed it,
and I ignore the change requests.  It still lets me use the GUI.  As a
side note,  Archiva really shouldn't be enforcing arbitrary password
policies, IMHO.  Forced password changes are silly even in high
security places.  And this isn't high security....

Anyway.  When I was trying to use maven to upload before, it was
giving me a 401 error.  I (correctly) assumed that it was doing this
because my password was expired.

So I created a new account.  I made it a "Repository-Manager".

And then I tried uploading small files using this new account, and it
worked fine.

However, when I try to upload a large file, I get the broken pipe at
an arbitrary point, and the server reports:

myip -  -  [02/Aug/2011:17:02:27 +0000] "PUT
/archiva/repository/apelon-data//com/apelon/va/ihtsdo/wb/snomed/snomed-data/2010.07.31-build1-sct-en-vtmvmp-non-human-2-versioni-junk/snomed-data-2010.07.31-build1-sct-en-vtmvmp-non-human-2-versioni-junk.zip
HTTP/1.1" 401 0 "-" "Apache-Maven/2.2 (Java 1.6.0_25; Linux
2.6.31-23-generic) maven-artifact/2.2.1"

And also:
2011-08-02 13:02:27,500 [btpool0-39] INFO
org.apache.maven.archiva.security.ArchivaServletAuthenticator  -
Authorization Denied
[ip=myip,permission=archiva-upload-repository,repo=apelon-data] : no
matching permissions

So, somewhere along the way when uploading a large file it would
appear Archiva gets confused and loses the credentials.

Probably not related, but I have also noticed that the GUI upload
suffers from a design flaw with large uploads here too - when the
upload takes longer than the default session timeout, the session
times out before the upload completes.  The upload will be processed
successfully - but the user doesn't know this - because the update
never comes back to the browser saying that it finished.  In fact, the
browser stays stuck, waiting for the page to finish loading forever...
which leads me to suspect that you may have a socket leak on your end
when you expire a session while a request is still being processed.

Reply via email to