[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Freeipa-devel] [PATCH] 531 Increase stack size for Web UI builder



On 12/13/2013 10:28 AM, Alexander Bokovoy wrote:
On Fri, 13 Dec 2013, Petr Vobornik wrote:
Web UI build fails on some architectures or configuration due to
StackOverflow. This patch increases the stack size to solve it.

512k is usually enough but we encountered fail on ppc64 even with 2m,
therefore the 8m. The build is single threaded so it shouldn't waste
much memory.
--
Petr Vobornik

From 9eeb52abaa6a53bb3304f96dd17d0b1f74083b50 Mon Sep 17 00:00:00 2001
From: Petr Vobornik <pvoborni redhat com>
Date: Wed, 31 Jul 2013 15:12:19 +0200
Subject: [PATCH] Increase stack size for Web UI builder

Web UI build fails on some architectures or configuration due to
StackOverflow. This patch increases the stack size to solve it.

512k is usually enough but we encountered fail on ppc64 even with 2m,
therefore the 8m. The build is single threaded so it shouldn't waste
much memory.
---
install/ui/util/build.sh        | 5 +++--
install/ui/util/uglifyjs/uglify | 9 +++++----
2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/install/ui/util/build.sh b/install/ui/util/build.sh
index
7cd623485a8a87872e29d32f529bd77a45d59810..9495e119bac123645e41aeb2b304d7d399a3fd96
100755
--- a/install/ui/util/build.sh
+++ b/install/ui/util/build.sh
@@ -31,5 +31,6 @@ if [[ ! $profile ]] ; then
    exit 1
fi

-rhino $DIR/build/build.js baseUrl=$DIR/build load=build
profile=$DIR/../src/$profile.profile.js
-exit $?
\ No newline at end of file
+RHINO="java -Xss8m -classpath /usr/share/java/rhino.jar
org.mozilla.javascript.tools.shell.Main"
+$RHINO $DIR/build/build.js baseUrl=$DIR/build load=build
profile=$DIR/../src/$profile.profile.js
+exit $?
diff --git a/install/ui/util/uglifyjs/uglify
b/install/ui/util/uglifyjs/uglify
index
7d25b38df19e465227f29b8b70ccf7ca140f725a..fb46275b868f60f5f92175ee070d98737b5d7c89
100755
--- a/install/ui/util/uglifyjs/uglify
+++ b/install/ui/util/uglifyjs/uglify
@@ -25,8 +25,9 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# rhino-1.7R4 doesn't have -main option to enable CommonJS support. It
was
# replaced by -require option.
-if [ `rhino --help | grep -e -require | wc -l` -gt 0 ] ; then
-    rhino -require $DIR/uglify-js.js $@
+RHINO="java -Xss8m -classpath /usr/share/java/rhino.jar
org.mozilla.javascript.tools.shell.Main"
+if [ `$RHINO --help | grep -e -require | wc -l` -gt 0 ] ; then
+    $RHINO -require $DIR/uglify-js.js $@
else
-    rhino -main $DIR/uglify-js.js $DIR/ug.js $@
-fi
\ No newline at end of file
+    $RHINO -main $DIR/uglify-js.js $DIR/ug.js $@
+fi
I'd prefer to get the value from some environmental variable within
build and uglify scripts and default to some expected value if that is
missing.
Then we can put default value in top Makefile and easily override it
from the spec if needed.

Makefile:
...
JAVA_STACK_SIZE ?= 8m
...

build.sh:
RHINO="java -Xss${JAVA_STACK_SIZE:-512k} ..."

uglify:
RHINO="java -Xss${JAVA_STACK_SIZE:-512k} ..."


then if some platform gets it broken, we can redefine JAVA_STACK_SIZE in
the specfile to any value without touching the code.


Fixed

--
Petr Vobornik
From 375f363df04c51b4f20b68dd567070d9e912e037 Mon Sep 17 00:00:00 2001
From: Petr Vobornik <pvoborni redhat com>
Date: Wed, 31 Jul 2013 15:12:19 +0200
Subject: [PATCH] Increase stack size for Web UI builder

Web UI build fails on some architectures or configuration due to
StackOverflow. This patch increases the stack size to solve it.

512k is usually enough but we encountered fail on ppc64 even with 2m,
therefore the 8m. The build is single threaded so it shouldn't waste
much memory.
---
 Makefile                        | 5 +++++
 install/ui/util/build.sh        | 5 +++--
 install/ui/util/uglifyjs/uglify | 9 +++++----
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/Makefile b/Makefile
index a7226341e6bd10106309997aae558fc07239482d..e54f8f0ba6484a12343f389b3cffbc20d7420a5f 100644
--- a/Makefile
+++ b/Makefile
@@ -55,6 +55,11 @@ PYTHON ?= $(shell rpm -E %__python || echo /usr/bin/python)
 CFLAGS := -g -O2 -Werror -Wall -Wextra -Wformat-security -Wno-unused-parameter -Wno-sign-compare -Wno-missing-field-initializers $(CFLAGS)
 export CFLAGS
 
+# Uncomment to increase Java stack size for Web UI build in case it fails
+# because of stack overflow exception. Default should be OK for most platforms.
+#JAVA_STACK_SIZE ?= 8m
+#export JAVA_STACK_SIZE
+
 all: bootstrap-autogen server tests
 	@for subdir in $(SUBDIRS); do \
 		(cd $$subdir && $(MAKE) $@) || exit 1; \
diff --git a/install/ui/util/build.sh b/install/ui/util/build.sh
index 7cd623485a8a87872e29d32f529bd77a45d59810..03776c1fe54f750cf028981bce625702af32aa1d 100755
--- a/install/ui/util/build.sh
+++ b/install/ui/util/build.sh
@@ -31,5 +31,6 @@ if [[ ! $profile ]] ; then
     exit 1
 fi
 
-rhino $DIR/build/build.js baseUrl=$DIR/build load=build profile=$DIR/../src/$profile.profile.js
-exit $?
\ No newline at end of file
+RHINO="java -Xss${JAVA_STACK_SIZE:-512k} -classpath /usr/share/java/rhino.jar  org.mozilla.javascript.tools.shell.Main"
+$RHINO $DIR/build/build.js baseUrl=$DIR/build load=build profile=$DIR/../src/$profile.profile.js
+exit $?
diff --git a/install/ui/util/uglifyjs/uglify b/install/ui/util/uglifyjs/uglify
index 7d25b38df19e465227f29b8b70ccf7ca140f725a..1227f589b4c50de49c465f6c696ecdc8af5e3c91 100755
--- a/install/ui/util/uglifyjs/uglify
+++ b/install/ui/util/uglifyjs/uglify
@@ -25,8 +25,9 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 
 # rhino-1.7R4 doesn't have -main option to enable CommonJS support. It was
 # replaced by -require option.
-if [ `rhino --help | grep -e -require | wc -l` -gt 0 ] ; then
-    rhino -require $DIR/uglify-js.js $@
+RHINO="java -Xss${JAVA_STACK_SIZE:-512k} -classpath /usr/share/java/rhino.jar  org.mozilla.javascript.tools.shell.Main"
+if [ `$RHINO --help | grep -e -require | wc -l` -gt 0 ] ; then
+    $RHINO -require $DIR/uglify-js.js $@
 else
-    rhino -main $DIR/uglify-js.js $DIR/ug.js $@
-fi
\ No newline at end of file
+    $RHINO -main $DIR/uglify-js.js $DIR/ug.js $@
+fi
-- 
1.8.3.1


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]