Je cours Hudson en tant que service de fenêtres par Tomcat, sans esclaves impliqués. La dernière étape de construction du travail est un fichier batch qui appelle du code Java. Le code utilise l'outil de ligne de commande de PostgreSQL psql (via Runtime.exec()) pour créer une base de données sur la machine locale et éventuellement exécuter des tests sur celle-ci.Le travail d'Hudson se bloque à Runtime.exec
Le travail progressera jusqu'à ce stade, puis se bloquera indéfiniment sans commencer à créer la base de données. Si j'exécute le fichier batch à partir de la ligne de commande, cela fonctionne parfaitement. Je ne pense pas http://hudson.gotdns.com/wiki/display/HUDSON/Spawning+processes+from+build s'applique, puisque le processus engendré ne semble même pas commencer à s'exécuter, mais je suis nouveau à cela, alors s'il vous plaît laissez-moi savoir si je me trompe. Le seul but du fichier batch est d'invoquer le code Java, et la seule entrée de l'utilisateur est transmise en tant qu'argument de ligne de commande, que je peux voir entrer directement via la sortie de la console de construction. L'Explorateur de processus montre que psql est démarré, mais il n'est évidemment pas exécuté, puisque la première commande psql est de créer une nouvelle base de données, mais cela ne se produit pas.
Édition 2: J'ai reçu quelques conseils de la liste de diffusion des utilisateurs de Hudson, je vais les essayer lundi et rendre compte.
Édition 3: Le code Java consommait déjà les flux de sortie, j'ai utilisé cet article lors du développement du code. Je n'arrive pas à comprendre ce qui se passe, donc je redéveloppe le code pour utiliser JDBC pour créer la base de données, au lieu de compter sur psql et Runtime.exec()
C'est une excellente ressource, je l'ai utilisé lors de l'écriture du code lui-même. Il pendait, mais il a au moins commencé à créer la base de données, contrairement à maintenant. – rjohnston