503 Service Unavailable when attempting to add an SVN repository in Fisheye

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Problem

Testing a connection fails with a 503 error when attempting to add an SVN repository. The following appears in the daily log (e.g. atlassian-fisheye-2015-09-30.log):

2015-09-28 09:14:07,752 DEBUG [qtp1274292338-29371 ection-1443424447736] fisheye SvnRepositoryTester-checkRepoSettings - Checking repository:  testrepo:http://10.100.200.300/svn/testrepo/
2015-09-28 09:14:07,752 DEBUG [SvnExecution252 testing ] fisheye SvnTask$1-run - Executing (qtp1274292338-29371) svn info -r HEAD http://10.100.200.300/svn/testrepo/@HEAD
2015-09-28 09:14:08,299 DEBUG [Resource Monitor ] fisheye SystemResourceMonitor$MonitoringTask-run - tc=145, ofd=-1, mfd=-1, fm=94822464, tm=544473088
2015-09-28 09:14:08,814 DEBUG [notificationManager1 ] fisheye DefaultNotificationManager-processNotifications - Processing notifications
2015-09-28 09:14:10,252 WARN  [qtp1274292338-29371 ection-1443424447736] fisheye SvnRepositoryTester-getServerRootURL - Unable to get info for the repository root for testrepo
com.cenqua.fisheye.rep.RepositoryClientException: org.apache.subversion.javahl.ClientException: svn: E175002: OPTIONS of '/svn/testrepo': 503 Service Unavailable (http://10.100.200.300)
svn: E175002: OPTIONS request failed on '/svn/testrepo'
	...
Caused by: org.apache.subversion.javahl.ClientException: svn: E175002: OPTIONS of '/svn/testrepo': 503 Service Unavailable (http://10.100.200.300)
svn: E175002: OPTIONS request failed on '/svn/testrepo'
...
	... 1 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS of '/svn/testrepo': 503 Service Unavailable (http://10.100.200.300)
svn: E175002: OPTIONS request failed on '/svn/testrepo'
...
	... 12 more

Diagnosis

Diagnostic Steps

  • Test the connection to the repository from the command line by issuing a simple native SVN command like svn info targeting the repository URL (e.g. svn info http://10.100.200.300/svn/testrepo). If you are using the built-in library and no native SVN client isn't installed, use the built-in library command jsvn from SVNKit that is bundled with Fisheye/Crucible. 
  • If the connection succeeds from the command line the investigation should move to the application (JVM). If the connection fails the issue is likely not with the application since basic connectivity is required. 

Cause

The JVM was configured with an outbound proxy without the proper exception/value for nonProxyHosts:

-Dfisheye.library.path= -Dfisheye.inst=/home/atlassian/fecru/data -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.endorsed.dirs=/opt/Atlassian/fecru/3.6/lib/endorsed -Xmx1024m -XX:MaxPermSize=384m -Dhttp.proxyHost=10.100.1.1 -Dhttp.proxyPort=5678 -Dhttp.nonProxyHosts=10.200.*|10.300.*

 

Resolution

Update the JVM setting nonProxyHosts to include the IP address / hostname of the target server and restart application:

-Dfisheye.library.path= -Dfisheye.inst=/home/atlassian/fecru/data -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.endorsed.dirs=/opt/Atlassian/fecru/3.6/lib/endorsed -Xmx1024m -XX:MaxPermSize=384m -Dhttp.proxyHost=10.100.1.1 -Dhttp.proxyPort=5678 -Dhttp.nonProxyHosts=10.200.*|10.300.*|10.100.*

For reference:

  • https://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html

     

    http.nonProxyHosts (default: localhost|127.*|[::1])
    Indicates the hosts that should be accessed without going through the proxy. Typically this defines internal hosts. The value of this property is a list of hosts, separated by the '|' character. In addition the wildcard character '*' can be used for pattern matching. For example -Dhttp.nonProxyHosts=”*.foo.com|localhost” will indicate that every hosts in the foo.com domain and the localhost should be accessed directly even if a proxy server is specified.

     

    The default value excludes all common variations of the loopback address.

 

Last modified on Nov 2, 2018

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.