Gateway timeout on publish to Artifactory repo.

844 views
Skip to first unread message

Viktor Hedefalk

unread,
Apr 24, 2013, 10:53:49 AM4/24/13
to simple-b...@googlegroups.com
I keep on getting this 504 every other time I try to publish to an
Artifactory repo:

java.io.IOException: PUT operation to URL
https://repo.woodenstake.se/libs-snapshots-local/4bodyandmind/4bodyandmind_2.10/0.1-SNAPSHOT/4bodyandmind_2.10-0.1-SNAPSHOT.war
failed with status code 504: Gateway Time-out
at org.apache.ivy.util.url.AbstractURLHandler.validatePutStatusCode(AbstractURLHandler.java:82)
at org.apache.ivy.util.url.BasicURLHandler.upload(BasicURLHandler.java:231)
at org.apache.ivy.util.FileUtil.copy(FileUtil.java:150)
at org.apache.ivy.plugins.repository.url.URLRepository.put(URLRepository.java:84)
at org.apache.ivy.plugins.repository.AbstractRepository.put(AbstractRepository.java:130)
at org.apache.ivy.plugins.resolver.RepositoryResolver.put(RepositoryResolver.java:234)
at org.apache.ivy.plugins.resolver.RepositoryResolver.publish(RepositoryResolver.java:216)
at sbt.IvyActions$$anonfun$publish$3.apply(IvyActions.scala:259)
at sbt.IvyActions$$anonfun$publish$3.apply(IvyActions.scala:258)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at sbt.IvyActions$.publish(IvyActions.scala:258)
at sbt.IvyActions$$anonfun$publish$1$$anonfun$apply$1.apply$mcV$sp(IvyActions.scala:93)
at sbt.IvyActions$$anonfun$publish$1$$anonfun$apply$1.apply(IvyActions.scala:93)
at sbt.IvyActions$$anonfun$publish$1$$anonfun$apply$1.apply(IvyActions.scala:93)
at sbt.IvyActions$.withChecksums(IvyActions.scala:102)
at sbt.IvyActions$.sbt$IvyActions$$withChecksums(IvyActions.scala:97)
at sbt.IvyActions$$anonfun$publish$1.apply(IvyActions.scala:93)
at sbt.IvyActions$$anonfun$publish$1.apply(IvyActions.scala:87)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:114)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:114)
at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:102)
at sbt.IvySbt.liftedTree1$1(Ivy.scala:49)
at sbt.IvySbt.action$1(Ivy.scala:49)
at sbt.IvySbt$$anon$3.call(Ivy.scala:58)
at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:75)
at xsbt.boot.Locks$GlobalLock.withChannelRetries$1(Locks.scala:58)
at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:79)
at xsbt.boot.Using$.withResource(Using.scala:11)
at xsbt.boot.Using$.apply(Using.scala:10)
at xsbt.boot.Locks$GlobalLock.liftedTree1$1(Locks.scala:51)
at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:51)
at xsbt.boot.Locks$.apply0(Locks.scala:30)
at xsbt.boot.Locks$.apply(Locks.scala:27)
at sbt.IvySbt.withDefaultLogger(Ivy.scala:58)
at sbt.IvySbt.withIvy(Ivy.scala:99)
at sbt.IvySbt.withIvy(Ivy.scala:95)
at sbt.IvySbt$Module.withModule(Ivy.scala:114)
at sbt.IvyActions$.publish(IvyActions.scala:87)
at sbt.Classpaths$$anonfun$publishTask$1.apply(Defaults.scala:925)
at sbt.Classpaths$$anonfun$publishTask$1.apply(Defaults.scala:924)
at sbt.Scoped$$anonfun$hf3$1.apply(Structure.scala:579)
at sbt.Scoped$$anonfun$hf3$1.apply(Structure.scala:579)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49)
at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:41)
at sbt.std.Transform$$anon$5.work(System.scala:71)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
at sbt.Execute.work(Execute.scala:238)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)

Running sbt publish again - it typically works. I've never had any
problems deploying to this repo from Maven. Is there any Ivy-settings
or the like that I might need to look into?

I seem to have struck this problem:
http://forums.jfrog.org/Snapshot-versioning-td7480017.html - my war is
typically a different version than doc, sources and pom:

https://docs.google.com/file/d/0B0CpRUD54crQZnB2ZXRMc3FDOVU/edit?usp=drive_web

I guess it's related. Is there a way I can fix the build order to make
Artifactory happy?

It's a jenkins build so I really need it to work the first and every time :)


Another thing I would like to check if it's better to publish locally
by-passing ssl and my nginx. Thing is, the Artfactory repo is actually
on the same machine, but I still just have:

publishTo <<= (version) { v =>
if (v endsWith "SNAPSHOT")
Some("Wooden Stake Snapshots Local" at
"https://repo.woodenstake.se/libs-snapshots-local")
else
Some("Wooden Stake Releases Local" at
"https://repo.woodenstake.se/libs-releases-local")
}

so I can publish from anywhere. Is there a way to override this
temporarily/per profile so that I go to say localhost:8088, just from
Jenkins? Maybe it could be worth trying to bypass nginx, but I still
think it's the publish order that is the real problem.


Any help highly appreciated!
Thanks,
Viktor

Viktor Hedefalk

unread,
Apr 24, 2013, 10:57:20 AM4/24/13
to simple-b...@googlegroups.com
A fuller view of how weird the snapshot versions becomes on Artifactory:

https://docs.google.com/file/d/0B0CpRUD54crQN1NzZk5OaEdtTHc/edit?usp=drive_web

Thanks,
Viktor

Viktor Hedefalk

unread,
Apr 25, 2013, 4:20:35 AM4/25/13
to simple-b...@googlegroups.com
Hate to bump, but I just realized I forgot the sbt-prefix again so I
guess this might have been filtered out…?

So the main question I have is how I can define the order of
publishing artifacts (pom, doc, src, war/jar) so that Artifactory gets
happy and doesn't screw up my snapshots.

Thanks,
Viktor
Reply all
Reply to author
Forward
0 new messages