Skip to end of metadata
Go to start of metadata

/tmp auf Schreibberechtigungen prüfen

Klingt abwegig, passiert aber wie ich leidvoll feststellen musste!

Eine laufende Bamboo Instanz bringt es dann beispielsweise beim Export aus dem tritt. Ohne Schreibrechte im /tmp folgt beim Export nur:

2011-02-07 15:42:43,596 INFO [2046295248@qtp-646676895-8] [AccessLogFilter] marcel http://dev.konqi.net/bamboo/admin/export.action 162241kb
2011-02-07 15:42:43,605 INFO [2046295248@qtp-646676895-8] [XmlMigrator] Creating zip:/opt/atlassian/bamboo-home/exports/sdfgsdfg.zip
2011-02-07 15:42:43,606 INFO [2046295248@qtp-646676895-8] [XmlMigrator] Starting export of data...
2011-02-07 15:42:43,607 INFO [2046295248@qtp-646676895-8] [XmlMigrator] Writing xml to file: /opt/atlassian/bamboo-home/exports/sdfgsdfg.zip
/db-export/users.xml
2011-02-07 15:42:43,609 INFO [2046295248@qtp-646676895-8] [XmlMigrator] Exporting with: com.atlassian.bamboo.migration.stream.UserMapper@6f7
1cb85
2011-02-07 15:42:43,614 INFO [2046295248@qtp-646676895-8] [XmlMigrator] Finished writing to file: /opt/atlassian/bamboo-home/exports/sdfgsdfg.zip/db-export/users.xml
2011-02-07 15:42:43,685 INFO [2046295248@qtp-646676895-8] [XmlMigrator] Ensuring the the file has been unmounted
2011-02-07 15:42:43,686 INFO [2046295248@qtp-646676895-8] [XmlMigrator] Unmounted /opt/atlassian/bamboo-home/exports/sdfgsdfg.zip
2011-02-07 15:42:43,687 ERROR [2046295248@qtp-646676895-8] [Export] java.io.FileNotFoundException: java.io.IOException: Permission denied
java.io.FileNotFoundException: java.io.IOException: Permission denied
        at de.schlichtherle.io.ArchiveController.createOutputStream(ArchiveController.java:579)
        at de.schlichtherle.io.FileOutputStream.createOutputStream(FileOutputStream.java:164)
[...]

Fehlt es bereits beim starten, ist es offensichtlicher, da dieser dann meist schon fehlschlägt, so wie im Fall von Bamboo mit

Port        = 8085
Web App     = webapp
contextPath = /bamboo
2011-02-07 15:03:04.101::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
2011-02-07 15:03:04.348::INFO:  jetty-6.1.15
2011-02-07 15:03:05.718::WARN:  tmpdir
java.io.IOException: Permission denied
	at java.io.UnixFileSystem.createFileExclusively(Native Method)
	at java.io.File.checkAndCreate(File.java:1704)
	at java.io.File.createTempFile(File.java:1792)
	at java.io.File.createTempFile(File.java:1828)
[...]

Zertifikatsfehler

Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

 

Jeder der nicht gerade seine Zertifikate von einer großen TrustCA bezieht fliegt früher oder später über diesen Fehler.

  1. Interessant ist dass Atlassian ein eigenes Java mitliefert!!!
    siehe Installing Java for Confluence
  2. Wir benötigen unter Debian in der Regel nicht mehr als das Paket ca-certificates-java
    StartSSL und CAcert sind enthalten


Lösung 1: Importieren von Root-Zertifikaten in den Keystore

siehe auch Zertifikatsverwaltung à la java

 

Lösung 2: Übernehmen aller Systemzeritifkate in den Keystore von Atlassian

$ keytool -importkeystore -srckeystore 
/usr/share/ca-certificates-java/cacerts -destkeystore 
$CONFLUENCE_INSTALL_DIRECTORY/jre/lib/security/cacerts

 

Lösung 3: Übernehmen / Nutzen des System Keystores

 

Lösung 4: Austauschen der Java Installation

 

Quellen und weitere Links

Vorsichtshalber mal die Quellen des SSLPoke

SSLPoke.class
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.*;

/** Establish a SSL connection to a host and port, writes a byte and
 * prints the response. See
 * http://confluence.atlassian.com/display/JIRA/Connecting+to+SSL+services
 */
public class SSLPoke {
    public static void main(String[] args) {
		if (args.length != 2) {
			System.out.println("Usage: "+SSLPoke.class.getName()+" <host> <port>");
			System.exit(1);
		}
		try {
			SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
			SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket(args[0], Integer.parseInt(args[1]));

			InputStream in = sslsocket.getInputStream();
			OutputStream out = sslsocket.getOutputStream();

			// Write a test byte to get a reaction :)
			out.write(1);

			while (in.available() > 0) {
				System.out.print(in.read());
			}
			System.out.println("Successfully connected");

		} catch (Exception exception) {
			exception.printStackTrace();
		}
	}
}

 

 

Meine Bugs und Feature Requests bei Atlassian

siehe Wunschliste - Feature and Bug Request

  • No labels