2014-09-05 4 views
2

У нас есть некоторые проблемы с нашим автоматизированным процессом сборки maven. Время от времени сборка нарушается процессом подписания install4j. Иногда это работает очень хорошо, иногда мы получаем следующее:SocketTimeoutException во время процесса подписания

... 
[15:51:29] :   [myapp] [INFO]  Compiling launcher 'Standalone updater': 
[15:51:29] :   [myapp] [INFO]  replaced variable 'launcher.name' with 'MyApp' in string '${compiler:launcher.name} Update' 
[15:51:29] :   [myapp] [INFO]  using icon file D:\BuildAgent7\work\1c0ed506bc73bcb4\target\install4j\resource\updater.ico 
[15:51:29] :   [myapp] [INFO]  replaced variable 'sys.fullName' with 'My Application' in string 'Starts the ${compiler:sys.fullName} update' 
[15:51:29] :   [myapp] [INFO]  Creating GUI mode application. 
[15:51:29] :   [myapp] [INFO]  Signing executable 
[15:51:37] :   [myapp] [INFO] Creating media file: 
[15:51:37] :   [myapp] [INFO]  replaced variable 'launcher.name' with 'MyApp' in string '${compiler:launcher.name} Uninstall' 
[15:51:37] :   [myapp] [INFO]  output file is D:\BuildAgent7\temp\buildTmp\install4j374202026546155444_dir\set1\launcheruninstaller\app.ico 
[15:51:37] :   [myapp] [INFO]  replaced variable 'sys.fullName' with 'My Application' in string 'Remove the ${compiler:sys.fullName} installation' 
[15:51:37] :   [myapp] [INFO]  Creating GUI mode application. 
[15:51:37] :   [myapp] [INFO]  Signing executable 
[15:51:47] :   [myapp] [INFO] com.a.a.d: error during counter signing 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.d.a(ejt:137) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.d.a(ejt:94) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.g.a(ejt:68) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.g.c.a(ejt:189) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.g.c.a(ejt:82) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.g.g.a(ejt:60) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.b.d(ejt:392) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.b.c(ejt:360) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.b.a(ejt:135) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.h.a(ejt:440) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.h.a(ejt:214) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.b.h.d(ejt:106) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.Install4JApplication.c(ejt:436) 
[15:51:47] :   [myapp] [INFO]  at com.a.a.a(ejt:286) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.Install4JApplication.main(ejt:93) 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.lang.reflect.Method.invoke(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at com.exe4j.runtime.LauncherEngine.launch(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at com.exe4j.runtime.WinLauncher.main(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.runtime.launcher.WinLauncher.main(Unknown Source) 
[15:51:47] :   [myapp] [INFO] Caused by: java.io.IOException: Read timed out 
[15:51:47] :   [myapp] [INFO] You can set a different timestamp signing service by setting the VM parameter -Dinstall4j.timestampUrl=http://... in bin/install4j.vmoptions 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.d.b(ejt:174) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.d.a(ejt:110) 
[15:51:47] :   [myapp] [INFO]  ... 21 more 
[15:51:47] :   [myapp] [INFO] Caused by: java.net.SocketTimeoutException: Read timed out 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.lang.reflect.Constructor.newInstance(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.security.AccessController.doPrivileged(Native Method) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.runtime.installer.helper.content.Downloader.connect(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at com.install4j.c.b.d.b(ejt:156) 
[15:51:47] :   [myapp] [INFO]  ... 22 more 
[15:51:47] :   [myapp] [INFO] Caused by: java.net.SocketTimeoutException: Read timed out 
[15:51:47] :   [myapp] [INFO]  at java.net.SocketInputStream.socketRead0(Native Method) 
[15:51:47] :   [myapp] [INFO]  at java.net.SocketInputStream.read(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.net.SocketInputStream.read(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.io.BufferedInputStream.fill(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.io.BufferedInputStream.read1(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.io.BufferedInputStream.read(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.net.URLConnection.getHeaderFieldLong(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.net.URLConnection.getContentLengthLong(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  at java.net.URLConnection.getContentLength(Unknown Source) 
[15:51:47] :   [myapp] [INFO]  ... 24 more 
[15:51:47] :   [myapp] [INFO] install4j: compilation failed. Reason: error during counter signing 
[15:51:47] :   [myapp] [Maven Watcher] 
[15:51:47]E:   [myapp] Failed to execute goal org.sonatype.install4j:install4j-maven-plugin:1.0.5:compile (build-installer) on project myapp: null returned: 1 
... 

Это проблема стабилизации нашей непрерывной сборки. SocketTimeoutException приводит меня к завершению отсутствия соединения с сервером verisign. Но для обновления было уже соединение во время выполнения подписания. Теперь я не уверен, что это может быть проблемой нашей среды сборки или процесса подписания самой install4j. Какое значение установлено как значение по умолчанию для таймаута соединения? Можно ли переопределить это значение?

Для подписания мы используем файл pfx и install4j с версией 5.1.12.

ответ

2

По умолчанию для таймаута чтения установлено значение 10000 миллисекунд. Вы можете увеличить его, добавив строку

-Dinstall4j.readTimeout=20000 

в файле bin/install4j.vmoptions в установке install4j.

Для справки имеется аналогичный параметр VM install4j.connectTimeout для таймаута соединения, также со значением по умолчанию 10000 мс.


Обновление (2014-11-20):

С install4j 6.0, неудачная счетчик подписи повторяется 10 раз с перерывом в 3 секунды. Максимальное количество попыток может быть увеличено с помощью параметра ВМ

-Dinstall4j.counterSignRetry=20 
+0

В порядке, я попробую это. Можно ли также установить параметр VM в командной строке вместо фиксированного файла vmoption? – Hardie82

+0

Да, с -J-Dinstall4j.readTimeout = 20000 –

+2

Теперь плагин install4j maven был расширен, чтобы выставить параметр, позволяющий установить этот и другие параметры VM. Запрос на перенос - https://github.com/sonatype/install4j-support и содержит дополнительный документ. Новая версия с этими изменениями - 1.0.8. –

Смежные вопросы