[JBoss JIRA] (JBVFS-200) FileURLConnection fails on relative URLs working on stock Java handler
by Tomaz Cerar (JIRA)
[ https://issues.jboss.org/browse/JBVFS-200?page=com.atlassian.jira.plugin.... ]
Tomaz Cerar resolved JBVFS-200.
-------------------------------
Fix Version/s: 3.2.9.Final
Resolution: Done
> FileURLConnection fails on relative URLs working on stock Java handler
> ----------------------------------------------------------------------
>
> Key: JBVFS-200
> URL: https://issues.jboss.org/browse/JBVFS-200
> Project: JBoss VFS
> Issue Type: Bug
> Components: Release
> Affects Versions: 3.2.5.Final
> Reporter: Arcadiy Ivanov
> Assignee: Tomaz Cerar
> Fix For: 3.2.9.Final
>
> Original Estimate: 1 hour
> Remaining Estimate: 1 hour
>
> A URL "file:./target/bundleA.txt" will not be handled appropriately by FileURLConnection resulting in the following exception:
> {noformat}
> java.lang.IllegalArgumentException: VFS000021: path must not be null
> at org.jboss.vfs.VFS.getChild(VFS.java:175)
> at org.jboss.vfs.VFS.getChild(VFS.java:163)
> at org.jboss.vfs.protocol.FileURLConnection.<init>(FileURLConnection.java:51)
> at org.jboss.vfs.protocol.FileURLStreamHandler.openConnection(FileURLStreamHandler.java:38)
> at java.net.URL.openConnection(URL.java:972)
> at java.net.URL.openStream(URL.java:1038)
> at org.jboss.osgi.repository.spi.FileBasedRepositoryStorage.getResourceContent(FileBasedRepositoryStorage.java:225)
> at org.jboss.osgi.repository.spi.FileBasedRepositoryStorage.createResourceInternal(FileBasedRepositoryStorage.java:201)
> at org.jboss.osgi.repository.spi.FileBasedRepositoryStorage.addContentResource(FileBasedRepositoryStorage.java:140)
> at org.jboss.osgi.repository.spi.FileBasedRepositoryStorage.addResourceInternal(FileBasedRepositoryStorage.java:122)
> at org.jboss.osgi.repository.spi.FileBasedRepositoryStorage.addResource(FileBasedRepositoryStorage.java:107)
> {noformat}
> The reason is that in the following code
> {noformat}
> public static VirtualFile getChild(URI uri) {
> return getChild(uri.getPath());
> }
> {noformat}
> {{uri.getPath()}} will return {{null}} due to URI being constructed from URL not being parsed as hierarchical only evaluating to "scheme-specific-part".
> This behavior is different from a stock Java file URL handler that will accept "file:./target/bundleA.txt" and handle it appropriately.
> A possible fix would be to call {{uri.getPath()}} first and if that returns {{null}}, fallback onto {{uri.getSchemeSpecificPart()}}.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 12 months
[JBoss JIRA] (WFCORE-494) Timestamped GC logs in domain mode
by Brian Stansberry (JIRA)
[ https://issues.jboss.org/browse/WFCORE-494?page=com.atlassian.jira.plugin... ]
Brian Stansberry reassigned WFCORE-494:
---------------------------------------
Assignee: (was: Brian Stansberry)
> Timestamped GC logs in domain mode
> ----------------------------------
>
> Key: WFCORE-494
> URL: https://issues.jboss.org/browse/WFCORE-494
> Project: WildFly Core
> Issue Type: Feature Request
> Components: Domain Management
> Affects Versions: 1.0.0.Alpha15
> Reporter: James Livingston
>
> In standalone mode, you can add "-Xloggc:gc.log.`date +%Y%m%d%H%M%S`" (or Windows equivalent batch scripting) to have timestamped GC logs which is useful to prevent them from being overwritten when a server is restarted. This does not work in domain mode, since JBoss obviously does not process the back-ticks like a shell interpreter.
> It would be useful to be able to get time-stamped gc logs in domain mode.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 12 months
[JBoss JIRA] (WFLY-4158) The task-keepalive property in the domain:io subsystem is ignored causing an async servlet timeout at 30 seconds
by Tomaz Cerar (JIRA)
[ https://issues.jboss.org/browse/WFLY-4158?page=com.atlassian.jira.plugin.... ]
Tomaz Cerar reassigned WFLY-4158:
---------------------------------
Assignee: Stuart Douglas (was: Tomaz Cerar)
XNIO options are properly configured.
Also I am not sure where 30 seconds comes from as defaults we force in IO subsystem for workers is 60.
> The task-keepalive property in the domain:io subsystem is ignored causing an async servlet timeout at 30 seconds
> ----------------------------------------------------------------------------------------------------------------
>
> Key: WFLY-4158
> URL: https://issues.jboss.org/browse/WFLY-4158
> Project: WildFly
> Issue Type: Bug
> Components: IO
> Affects Versions: 8.2.0.Final
> Environment: Windows Server 2008, Windows 7, Java SE 7u72 and 8u25 64bit
> Reporter: Raul Guerrero Deschamps
> Assignee: Stuart Douglas
> Labels: asynchronous, servlet, timeout
>
> I have a file upload and download asynchronous servlet, I define a ReadListener and WriteListener to process the files.
> To be able to handle really large files, I setted a property in the IO subsystem to have the IO thread timeout at one hour using the task-keepalive property to avoid leaked threads if the request has a problem:
> {code:xml}
> <subsystem xmlns="urn:jboss:domain:io:1.1">
> <worker name="default" task-keepalive="3600"/>
> <buffer-pool name="default"/>
> </subsystem>
> {code}
> And also set the max-post-size property to the maximum to avoid limiting the size of the file, so you can upload files of any size as long as it only takes one hour, this is an intranet application so we don't have bandwidth issues or timeouts for the uploads and downloads.
> {code:xml}
> <subsystem xmlns="urn:jboss:domain:undertow:1.2">
> <buffer-cache name="default"/>
> <server name="default-server">
> <http-listener name="default" socket-binding="http" max-post-size="0"/>
> ...
> {code}
> Now, this works perfectly on WildFly 8.1.0 Final, but I upgraded to 8.2.0, and even though I setted the same properties, I get an exception exactly at 30 seconds after a request for an upload or download:
> {noformat}
> ERROR [io.undertow.request] (default task-32) Undertow request failed HttpServerExchange{ PUT /xxx/file}: java.lang.NullPointerException
> Followed by:
> ERROR [org.xnio.listener] (default I/O-1) XNIO001007: A channel event listener threw an exception
> {noformat}
> Which is what happens when an I/O thread times out, so it causes the NullPointerException in the servlet because the IO thread is gone.
> Even though I set any time on the task-keepalive property, still the IO thread gets always killed at 30 seconds.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 12 months
[JBoss JIRA] (WFLY-4236) vault.bat doesn't work with JDK 9-ea
by Tomaz Cerar (JIRA)
[ https://issues.jboss.org/browse/WFLY-4236?page=com.atlassian.jira.plugin.... ]
Tomaz Cerar commented on WFLY-4236:
-----------------------------------
There are known problems with running wildfly on JDK9-EA (jigsaw builds)
We are working on fixing this together with oracle, but for now this is not high priority task
> vault.bat doesn't work with JDK 9-ea
> ------------------------------------
>
> Key: WFLY-4236
> URL: https://issues.jboss.org/browse/WFLY-4236
> Project: WildFly
> Issue Type: Sub-task
> Components: Security
> Affects Versions: 9.0.0.Beta1
> Environment: Windows 8.1, JDK 9-ea build 44
> Reporter: Juergen Zimmermann
> Assignee: Tomaz Cerar
>
> I compiled the current WildFly snapshot with JDK 8u25 on Windows 8.1 box. To configure the vault (for the database password) I switched to JDK 9 (early access, build 44). Then I created a keystore which can be listed:
> {code}
> C:\>keytool -list -v -storetype jceks -keystore C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107\standalone\configuration\vault\vault.jceks -storepass <mypwd>
> Keystore-Typ: JCEKS
> Keystore-Provider: SunJCE
> Keystore enthält 1 Eintrag
> Aliasname: vault
> Erstellungsdatum: 09.01.2015
> Eintragstyp: SecretKeyEntry
> *******************************************
> *******************************************
> {code}
> Then I invoked vault.bat, which was failing:
> {code}
> C:\>SET VAULT_DIR=C:/Zimmermann/wildfly-9.0.0.Alpha2-20150107/standalone/configuration/vault
> C:\>vault.bat -k %VAULT_DIR%/vault.jceks -a db-pass -x p -s ABCD1234 -p <mypwd> -e %VAULT_DIR%/
> =========================================================================
> JBoss Vault Tool
> JBOSS_HOME: "C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107"
> JAVA: "C:\Zimmermann\Java\jdk\bin\java"
> JAVA_OPTS: ""
> =========================================================================
> Problem occurred:
> java.lang.Exception: WFLYSEC0045: Exception encountered:
> at org.jboss.as.security.vault.VaultSession.initSecurityVault(VaultSession.java:192)
> at org.jboss.as.security.vault.VaultSession.startVaultSession(VaultSession.java:210)
> at org.jboss.as.security.vault.VaultTool.execute(VaultTool.java:193)
> at org.jboss.as.security.vault.VaultTool.main(VaultTool.java:83)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.jboss.modules.Module.run(Module.java:308)
> at org.jboss.modules.Main.main(Main.java:483)
> Caused by: org.jboss.security.vault.SecurityVaultException: java.lang.RuntimeException: PBOX000140: Unable to get keystore (C:/Zimmermann/wildfly-9.0.0.Alpha2-20150107/standalone/configuration/vault/vault.jceks)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:210)
> at org.jboss.as.security.vault.VaultSession.initSecurityVault(VaultSession.java:189)
> ... 9 more
> Caused by: java.lang.RuntimeException: PBOX000140: Unable to get keystore (C:/Zimmermann/wildfly-9.0.0.Alpha2-20150107/standalone/configuration/vault/vault.jceks)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:691)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:205)
> ... 10 more
> Caused by: java.io.IOException: com.sun.crypto.provider.SealedObjectForKeyProtector from [Module "org.picketbox:main" from local module loader @3e77a1ed (finder: local module finder @3ffcd140 (roots: C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107\modules,C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107\modules\system\layers\base))]
> at com.sun.crypto.provider.JceKeyStore.engineLoad(JceKeyStore.java:842)
> at java.security.KeyStore.load(KeyStore.java:1446)
> at org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:201)
> at org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:151)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:688)
> ... 11 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 12 months
[JBoss JIRA] (WFLY-4236) vault.bat doesn't work with JDK 9-ea
by Tomaz Cerar (JIRA)
[ https://issues.jboss.org/browse/WFLY-4236?page=com.atlassian.jira.plugin.... ]
Tomaz Cerar updated WFLY-4236:
------------------------------
Parent: WFLY-3854
Issue Type: Sub-task (was: Bug)
> vault.bat doesn't work with JDK 9-ea
> ------------------------------------
>
> Key: WFLY-4236
> URL: https://issues.jboss.org/browse/WFLY-4236
> Project: WildFly
> Issue Type: Sub-task
> Components: Security
> Affects Versions: 9.0.0.Beta1
> Environment: Windows 8.1, JDK 9-ea build 44
> Reporter: Juergen Zimmermann
> Assignee: Tomaz Cerar
>
> I compiled the current WildFly snapshot with JDK 8u25 on Windows 8.1 box. To configure the vault (for the database password) I switched to JDK 9 (early access, build 44). Then I created a keystore which can be listed:
> {code}
> C:\>keytool -list -v -storetype jceks -keystore C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107\standalone\configuration\vault\vault.jceks -storepass <mypwd>
> Keystore-Typ: JCEKS
> Keystore-Provider: SunJCE
> Keystore enthält 1 Eintrag
> Aliasname: vault
> Erstellungsdatum: 09.01.2015
> Eintragstyp: SecretKeyEntry
> *******************************************
> *******************************************
> {code}
> Then I invoked vault.bat, which was failing:
> {code}
> C:\>SET VAULT_DIR=C:/Zimmermann/wildfly-9.0.0.Alpha2-20150107/standalone/configuration/vault
> C:\>vault.bat -k %VAULT_DIR%/vault.jceks -a db-pass -x p -s ABCD1234 -p <mypwd> -e %VAULT_DIR%/
> =========================================================================
> JBoss Vault Tool
> JBOSS_HOME: "C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107"
> JAVA: "C:\Zimmermann\Java\jdk\bin\java"
> JAVA_OPTS: ""
> =========================================================================
> Problem occurred:
> java.lang.Exception: WFLYSEC0045: Exception encountered:
> at org.jboss.as.security.vault.VaultSession.initSecurityVault(VaultSession.java:192)
> at org.jboss.as.security.vault.VaultSession.startVaultSession(VaultSession.java:210)
> at org.jboss.as.security.vault.VaultTool.execute(VaultTool.java:193)
> at org.jboss.as.security.vault.VaultTool.main(VaultTool.java:83)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.jboss.modules.Module.run(Module.java:308)
> at org.jboss.modules.Main.main(Main.java:483)
> Caused by: org.jboss.security.vault.SecurityVaultException: java.lang.RuntimeException: PBOX000140: Unable to get keystore (C:/Zimmermann/wildfly-9.0.0.Alpha2-20150107/standalone/configuration/vault/vault.jceks)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:210)
> at org.jboss.as.security.vault.VaultSession.initSecurityVault(VaultSession.java:189)
> ... 9 more
> Caused by: java.lang.RuntimeException: PBOX000140: Unable to get keystore (C:/Zimmermann/wildfly-9.0.0.Alpha2-20150107/standalone/configuration/vault/vault.jceks)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:691)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:205)
> ... 10 more
> Caused by: java.io.IOException: com.sun.crypto.provider.SealedObjectForKeyProtector from [Module "org.picketbox:main" from local module loader @3e77a1ed (finder: local module finder @3ffcd140 (roots: C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107\modules,C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107\modules\system\layers\base))]
> at com.sun.crypto.provider.JceKeyStore.engineLoad(JceKeyStore.java:842)
> at java.security.KeyStore.load(KeyStore.java:1446)
> at org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:201)
> at org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:151)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:688)
> ... 11 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 12 months
[JBoss JIRA] (WFLY-4236) vault.bat doesn't work with JDK 9-ea
by Tomaz Cerar (JIRA)
[ https://issues.jboss.org/browse/WFLY-4236?page=com.atlassian.jira.plugin.... ]
Tomaz Cerar reassigned WFLY-4236:
---------------------------------
Assignee: Tomaz Cerar (was: Darran Lofthouse)
> vault.bat doesn't work with JDK 9-ea
> ------------------------------------
>
> Key: WFLY-4236
> URL: https://issues.jboss.org/browse/WFLY-4236
> Project: WildFly
> Issue Type: Bug
> Components: Security
> Affects Versions: 9.0.0.Beta1
> Environment: Windows 8.1, JDK 9-ea build 44
> Reporter: Juergen Zimmermann
> Assignee: Tomaz Cerar
>
> I compiled the current WildFly snapshot with JDK 8u25 on Windows 8.1 box. To configure the vault (for the database password) I switched to JDK 9 (early access, build 44). Then I created a keystore which can be listed:
> {code}
> C:\>keytool -list -v -storetype jceks -keystore C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107\standalone\configuration\vault\vault.jceks -storepass <mypwd>
> Keystore-Typ: JCEKS
> Keystore-Provider: SunJCE
> Keystore enthält 1 Eintrag
> Aliasname: vault
> Erstellungsdatum: 09.01.2015
> Eintragstyp: SecretKeyEntry
> *******************************************
> *******************************************
> {code}
> Then I invoked vault.bat, which was failing:
> {code}
> C:\>SET VAULT_DIR=C:/Zimmermann/wildfly-9.0.0.Alpha2-20150107/standalone/configuration/vault
> C:\>vault.bat -k %VAULT_DIR%/vault.jceks -a db-pass -x p -s ABCD1234 -p <mypwd> -e %VAULT_DIR%/
> =========================================================================
> JBoss Vault Tool
> JBOSS_HOME: "C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107"
> JAVA: "C:\Zimmermann\Java\jdk\bin\java"
> JAVA_OPTS: ""
> =========================================================================
> Problem occurred:
> java.lang.Exception: WFLYSEC0045: Exception encountered:
> at org.jboss.as.security.vault.VaultSession.initSecurityVault(VaultSession.java:192)
> at org.jboss.as.security.vault.VaultSession.startVaultSession(VaultSession.java:210)
> at org.jboss.as.security.vault.VaultTool.execute(VaultTool.java:193)
> at org.jboss.as.security.vault.VaultTool.main(VaultTool.java:83)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.jboss.modules.Module.run(Module.java:308)
> at org.jboss.modules.Main.main(Main.java:483)
> Caused by: org.jboss.security.vault.SecurityVaultException: java.lang.RuntimeException: PBOX000140: Unable to get keystore (C:/Zimmermann/wildfly-9.0.0.Alpha2-20150107/standalone/configuration/vault/vault.jceks)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:210)
> at org.jboss.as.security.vault.VaultSession.initSecurityVault(VaultSession.java:189)
> ... 9 more
> Caused by: java.lang.RuntimeException: PBOX000140: Unable to get keystore (C:/Zimmermann/wildfly-9.0.0.Alpha2-20150107/standalone/configuration/vault/vault.jceks)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:691)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:205)
> ... 10 more
> Caused by: java.io.IOException: com.sun.crypto.provider.SealedObjectForKeyProtector from [Module "org.picketbox:main" from local module loader @3e77a1ed (finder: local module finder @3ffcd140 (roots: C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107\modules,C:\Zimmermann\wildfly-9.0.0.Alpha2-20150107\modules\system\layers\base))]
> at com.sun.crypto.provider.JceKeyStore.engineLoad(JceKeyStore.java:842)
> at java.security.KeyStore.load(KeyStore.java:1446)
> at org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:201)
> at org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:151)
> at org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:688)
> ... 11 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 12 months
[JBoss JIRA] (WFLY-4158) The task-keepalive property in the domain:io subsystem is ignored causing an async servlet timeout at 30 seconds
by Tomaz Cerar (JIRA)
[ https://issues.jboss.org/browse/WFLY-4158?page=com.atlassian.jira.plugin.... ]
Tomaz Cerar updated WFLY-4158:
------------------------------
Description:
I have a file upload and download asynchronous servlet, I define a ReadListener and WriteListener to process the files.
To be able to handle really large files, I setted a property in the IO subsystem to have the IO thread timeout at one hour using the task-keepalive property to avoid leaked threads if the request has a problem:
{code:xml}
<subsystem xmlns="urn:jboss:domain:io:1.1">
<worker name="default" task-keepalive="3600"/>
<buffer-pool name="default"/>
</subsystem>
{code}
And also set the max-post-size property to the maximum to avoid limiting the size of the file, so you can upload files of any size as long as it only takes one hour, this is an intranet application so we don't have bandwidth issues or timeouts for the uploads and downloads.
{code:xml}
<subsystem xmlns="urn:jboss:domain:undertow:1.2">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http" max-post-size="0"/>
...
{code}
Now, this works perfectly on WildFly 8.1.0 Final, but I upgraded to 8.2.0, and even though I setted the same properties, I get an exception exactly at 30 seconds after a request for an upload or download:
{noformat}
ERROR [io.undertow.request] (default task-32) Undertow request failed HttpServerExchange{ PUT /xxx/file}: java.lang.NullPointerException
Followed by:
ERROR [org.xnio.listener] (default I/O-1) XNIO001007: A channel event listener threw an exception
{noformat}
Which is what happens when an I/O thread times out, so it causes the NullPointerException in the servlet because the IO thread is gone.
Even though I set any time on the task-keepalive property, still the IO thread gets always killed at 30 seconds.
was:
I have a file upload and download asynchronous servlet, I define a ReadListener and WriteListener to process the files.
To be able to handle really large files, I setted a property in the IO subsystem to have the IO thread timeout at one hour using the task-keepalive property to avoid leaked threads if the request has a problem:
<subsystem xmlns="urn:jboss:domain:io:1.1">
<worker name="default" task-keepalive="3600"/>
<buffer-pool name="default"/>
</subsystem>
And also set the max-post-size property to the maximum to avoid limiting the size of the file, so you can upload files of any size as long as it only takes one hour, this is an intranet application so we don't have bandwidth issues or timeouts for the uploads and downloads.
<subsystem xmlns="urn:jboss:domain:undertow:1.2">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http" max-post-size="0"/>
...
Now, this works perfectly on WildFly 8.1.0 Final, but I upgraded to 8.2.0, and even though I setted the same properties, I get an exception exactly at 30 seconds after a request for an upload or download:
ERROR [io.undertow.request] (default task-32) Undertow request failed HttpServerExchange{ PUT /xxx/file}: java.lang.NullPointerException
Followed by:
ERROR [org.xnio.listener] (default I/O-1) XNIO001007: A channel event listener threw an exception
Which is what happens when an I/O thread times out, so it causes the NullPointerException in the servlet because the IO thread is gone.
Even though I set any time on the task-keepalive property, still the IO thread gets always killed at 30 seconds.
> The task-keepalive property in the domain:io subsystem is ignored causing an async servlet timeout at 30 seconds
> ----------------------------------------------------------------------------------------------------------------
>
> Key: WFLY-4158
> URL: https://issues.jboss.org/browse/WFLY-4158
> Project: WildFly
> Issue Type: Bug
> Components: IO
> Affects Versions: 8.2.0.Final
> Environment: Windows Server 2008, Windows 7, Java SE 7u72 and 8u25 64bit
> Reporter: Raul Guerrero Deschamps
> Assignee: Tomaz Cerar
> Labels: asynchronous, servlet, timeout
>
> I have a file upload and download asynchronous servlet, I define a ReadListener and WriteListener to process the files.
> To be able to handle really large files, I setted a property in the IO subsystem to have the IO thread timeout at one hour using the task-keepalive property to avoid leaked threads if the request has a problem:
> {code:xml}
> <subsystem xmlns="urn:jboss:domain:io:1.1">
> <worker name="default" task-keepalive="3600"/>
> <buffer-pool name="default"/>
> </subsystem>
> {code}
> And also set the max-post-size property to the maximum to avoid limiting the size of the file, so you can upload files of any size as long as it only takes one hour, this is an intranet application so we don't have bandwidth issues or timeouts for the uploads and downloads.
> {code:xml}
> <subsystem xmlns="urn:jboss:domain:undertow:1.2">
> <buffer-cache name="default"/>
> <server name="default-server">
> <http-listener name="default" socket-binding="http" max-post-size="0"/>
> ...
> {code}
> Now, this works perfectly on WildFly 8.1.0 Final, but I upgraded to 8.2.0, and even though I setted the same properties, I get an exception exactly at 30 seconds after a request for an upload or download:
> {noformat}
> ERROR [io.undertow.request] (default task-32) Undertow request failed HttpServerExchange{ PUT /xxx/file}: java.lang.NullPointerException
> Followed by:
> ERROR [org.xnio.listener] (default I/O-1) XNIO001007: A channel event listener threw an exception
> {noformat}
> Which is what happens when an I/O thread times out, so it causes the NullPointerException in the servlet because the IO thread is gone.
> Even though I set any time on the task-keepalive property, still the IO thread gets always killed at 30 seconds.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 12 months