Decreasing Xss could save the total amount of off-heap memory that my JVM uses, but it doesn't solve the problem - super dev mode's jvm hits the "threads-per-process" limit of the os (
суббота, 22 июля 2017 г., 15:38:12 UTC-7 пользователь Jamesg написал: > > Looks like the number of threads being created is using up stack memory. > Try reducing the amount of stack memory allocated to each thread on > creation. -Xss depending on what JVM you are using try setting it to > minimum. > > > https://stackoverflow.com/questions/36898701/how-does-java-jvm-allocate-stack-for-each-thread > > > On 22 Jul 2017 17:46, "Mikhail Krestyaninov" <[email protected] > <javascript:>> wrote: > >> Hello. >> >> I have a very big GWT project which recently has become a bit more >> bigger. After a new GWT module was added the following error started to >> occur: >> >> >> /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin/java >> >> -Dapple.awt.UIElement=true >> >> -Xmx2048m >> >> -Dorg.jboss.logging.provider=jdk >> >> -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.JavaUtilLog >> >> "-javaagent:/Applications/IntelliJ >> IDEA.app/Contents/lib/idea_rt.jar=54880:/Applications/IntelliJ >> IDEA.app/Contents/bin" >> >> -Dfile.encoding=UTF-8 >> >> -classpath “VERY:BIG:CLASSPATH” >> >> com.google.gwt.dev.DevMode -superDevMode -style PRETTY -war /Users/ >> username/Library/Caches/IntelliJIdea2017.1/gwt/project.5b9c19f7/Project- >> gwt.9c4fbf78/run/www -remoteUI 7906:IntelliJIdea com.example.gwt. >> ProjectEntryPoint com.example.gwt.pages.Pages com.example.gwt.login. >> LoginPage com.example.gwt.admin.AdminPage >> >> >> Running CodeServer with parameters: [-noprecompile, -port, 9876, - >> sourceLevel, 1.8, -bindAddress, 127.0.0.1, -launcherDir, /Users/username/ >> Library/Caches/IntelliJIdea2017.1/gwt/project.5b9c19f7/Project-gwt. >> 9c4fbf78/run/www, -logLevel, INFO, -style, PRETTY, com.example.gwt. >> ProjectEntryPoint, com.example.gwt.pages.Pages, com.example.gwt.login. >> LoginPage, com.example.gwt.admin.AdminPage] >> >> Super Dev Mode starting up >> >> workDir: /var/folders/pd/1gzkcy4d4md1hcrwmjjbzqrc0000gn/T/gwt- >> codeserver-7810232587123559115.tmp >> >> Jul 21, 2017 4:09:24 PM org.eclipse.jetty.util.log.JavaUtilLog info >> >> INFO: Logging initialized @3481ms >> >> Loading Java files in com.example.gwt.ProjectEntryPoint. >> >> Module setup completed in 49903 ms >> >> Loading Java files in com.example.gwt.pages.Pages. >> >> Module setup completed in 2964 ms >> >> Loading Java files in com.example.gwt.login.LoginPage. >> >> Module setup completed in 2350 ms >> >> java.lang.OutOfMemoryError: unable to create new native thread >> >> at java.lang.Thread.start0(Native Method) >> >> at java.lang.Thread.start(Thread.java:717) >> >> at java.util.concurrent.ThreadPoolExecutor.addWorker( >> ThreadPoolExecutor.java:950) >> >> at java.util.concurrent.ThreadPoolExecutor.ensurePrestart( >> ThreadPoolExecutor.java:1587) >> >> at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute >> (ScheduledThreadPoolExecutor.java:334) >> >> at java.util.concurrent.ScheduledThreadPoolExecutor. >> scheduleAtFixedRate(ScheduledThreadPoolExecutor.java:573) >> >> at java.util.concurrent. >> Executors$DelegatedScheduledExecutorService.scheduleAtFixedRate(Executors >> .java:735) >> >> at sun.nio.fs.PollingWatchService$PollingWatchKey.enable( >> PollingWatchService.java:290) >> >> at sun.nio.fs.PollingWatchService.doPrivilegedRegister( >> PollingWatchService.java:172) >> >> at sun.nio.fs.PollingWatchService.access$000(PollingWatchService. >> java:45) >> >> at sun.nio.fs.PollingWatchService$2.run(PollingWatchService.java: >> 128) >> >> at sun.nio.fs.PollingWatchService$2.run(PollingWatchService.java: >> 125) >> >> at java.security.AccessController.doPrivileged(Native Method) >> >> at sun.nio.fs.PollingWatchService.register(PollingWatchService. >> java:124) >> >> at sun.nio.fs.UnixPath.register(UnixPath.java:897) >> >> at sun.nio.fs.AbstractPath.register(AbstractPath.java:104) >> >> at com.google.gwt.dev.resource.impl.ResourceAccumulator. >> onNewDirectory(ResourceAccumulator.java:163) >> >> at com.google.gwt.dev.resource.impl.ResourceAccumulator. >> fullRefresh(ResourceAccumulator.java:91) >> >> at com.google.gwt.dev.resource.impl.ResourceAccumulator. >> refreshResources(ResourceAccumulator.java:69) >> >> at com.google.gwt.dev.resource.impl.ResourceAccumulatorManager. >> getResources(ResourceAccumulatorManager.java:113) >> >> at com.google.gwt.dev.resource.impl.DirectoryClassPathEntry. >> findApplicableResources(DirectoryClassPathEntry.java:49) >> >> at com.google.gwt.dev.resource.impl.ResourceOracleImpl. >> scanResources(ResourceOracleImpl.java:263) >> >> at com.google.gwt.dev.cfg.ModuleDef.getBuildResourceOracle( >> ModuleDef.java:405) >> >> at com.google.gwt.dev.CompilerContext$Builder. >> initializeResourceOracles(CompilerContext.java:101) >> >> at com.google.gwt.dev.CompilerContext$Builder.build( >> CompilerContext.java:48) >> >> at com.google.gwt.dev.codeserver.Recompiler.loadModule(Recompiler. >> java:447) >> >> at com.google.gwt.dev.codeserver.Recompiler.initWithoutPrecompile( >> Recompiler.java:204) >> >> at com.google.gwt.dev.codeserver.Outbox.maybePrecompile(Outbox. >> java:89) >> >> at com.google.gwt.dev.codeserver.Outbox.<init>(Outbox.java:61) >> >> at com.google.gwt.dev.codeserver.CodeServer.makeOutboxTable( >> CodeServer.java:192) >> >> at com.google.gwt.dev.codeserver.CodeServer.start(CodeServer.java: >> 151) >> >> at com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java: >> 104) >> >> at com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java: >> 55) >> >> 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 com.google.gwt.dev.shell.SuperDevListener.runCodeServer( >> SuperDevListener.java:112) >> >> at com.google.gwt.dev.shell.SuperDevListener.start( >> SuperDevListener.java:91) >> >> at com.google.gwt.dev.DevMode.ensureCodeServerListener(DevMode. >> java:666) >> >> at com.google.gwt.dev.DevModeBase.doStartup(DevModeBase.java:810) >> >> at com.google.gwt.dev.DevMode.doStartup(DevMode.java:551) >> >> at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:913) >> >> at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:706) >> >> at com.google.gwt.dev.DevMode.main(DevMode.java:432) >> >> During the compilation process I can see (in Activity Monitor) that the >> amount of threads for DevMode process raises up to 2K and then the error >> occurs. As far as I can see, the default limit of threads per process on >> MacOS ("sysctl kern.num_taskthreads") is 2048 which means that I hit it. >> Changing Xmx limit (obviously) doesn't solve the problem. >> >> I tried to decrease the amount of local workers, but faced the following >> error: >> >> Unknown argument: -localWorkers >> >> Google Web Toolkit 2.8.1 >> >> DevMode [-[no]startServer] [-port port-number | "auto"] [-logdir >> directory] [-logLevel (ERROR|WARN|INFO|TRACE|DEBUG|SPAM|ALL)] [-gen dir] >> [-bindAddress host-name-or-address] [-codeServerPort port-number | "auto" >> ] [-[no]superDevMode] [-server servletContainerLauncher[:args]] [-startupUrl >> url] [-war dir] [-deploy dir] [-extra dir] [-modulePathPrefix ] [-workDir >> dir] [-XmethodNameDisplayMode (NONE|ONLY_METHOD_NAME|ABBREVIATED|FULL)] >> [-sourceLevel [auto, 1.8]] [-[no]generateJsInteropExports] [- >> includeJsInteropExports/excludeJsInteropExports regex] [-[no]incremental] >> [-style (DETAILED|OBFUSCATED|PRETTY)] [-[no]failOnError] [-setProperty >> name=value,value...] module[s] >> >> where >> >> -[no]startServer Starts a servlet >> container serving the directory specified by the -war flag. (defaults to >> ON) >> >> -port Specifies the TCP >> port for the embedded web server (defaults to 8888) >> >> -logdir Logs to a file in the >> given directory, as well as >> ... > > -- You received this message because you are subscribed to the Google Groups "GWT Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/google-web-toolkit. For more options, visit https://groups.google.com/d/optout.
