Skip to content

Commit dd47f73

Browse files
committed
Fixed issues in crystal-h2o, swift-nio and java lang implementations
[docker_verify]
1 parent 9a854ef commit dd47f73

File tree

8 files changed

+55
-50
lines changed

8 files changed

+55
-50
lines changed

docker/all/lang/ffead-cpp-crystal-h2o.dockerfile

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
1+
FROM ubuntu:22.04
2+
RUN apt-get update -y && apt-get install -yqq libh2o-evloop-dev
3+
14
FROM sumeetchhetri/ffead-cpp-base:7.0
25

36
ENV IROOT=/installs
47

58
RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
6-
ln -s ${IROOT}/ffead-cpp-7.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
7-
ln -s ${IROOT}/ffead-cpp-7.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
8-
ln -s ${IROOT}/ffead-cpp-7.0/lib/libinter.so /usr/local/lib/libinter.so && \
9-
ln -s ${IROOT}/ffead-cpp-7.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
10-
ldconfig
9+
ln -s ${IROOT}/ffead-cpp-7.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
10+
ln -s ${IROOT}/ffead-cpp-7.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
11+
ln -s ${IROOT}/ffead-cpp-7.0/lib/libinter.so /usr/local/lib/libinter.so && \
12+
ln -s ${IROOT}/ffead-cpp-7.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
13+
ldconfig
14+
15+
RUN apt-get update -y && apt-get install -yqq libwslay-dev libyaml-0-2 libevent-dev libpcre3-dev \
16+
gcc wget git libssl-dev libuv1-dev ca-certificates --no-install-recommends && rm -rf /var/lib/apt/lists/*
1117

12-
RUN apt-get update -y && apt-get install -yqq libh2o-evloop-dev libwslay-dev libyaml-0-2 libevent-dev libpcre3-dev \
13-
gcc wget git libssl-dev libuv1-dev ca-certificates --no-install-recommends && rm -rf /var/lib/apt/lists/*
18+
COPY --from=0 /usr/lib/x86_64-linux-gnu/libh2o* /usr/lib/x86_64-linux-gnu/
19+
COPY --from=0 /usr/include/h2o.h /usr/include/h2o.h
20+
COPY --from=0 /usr/include/h2o /usr/include/h2o
21+
1422
RUN wget -q https://github.com/crystal-lang/crystal/releases/download/0.26.1/crystal-0.26.1-1-linux-x86_64.tar.gz \
1523
&& tar --strip-components=1 -xzf crystal-0.26.1-1-linux-x86_64.tar.gz -C /usr/ && rm -f *.tar.gz
1624
WORKDIR ${IROOT}/lang-server-backends/crystal/h2o.cr

docker/all/lang/ffead-cpp-swift-nio.dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/li
1111
ldconfig
1212

1313
WORKDIR ${IROOT}
14-
RUN apt-get update -y && apt-get install -y --no-install-recommends clang libicu-dev libpython2.7-dev libtinfo5 libncurses5 libz3-dev \
14+
RUN apt-get update -y && apt-get install -y --no-install-recommends clang libicu-dev libpython3-dev libtinfo6 libncurses6 libz3-dev \
1515
&& rm -rf /var/lib/apt/lists/*
1616

17-
RUN wget -q https://download.swift.org/swift-5.5.1-release/ubuntu2004/swift-5.5.1-RELEASE/swift-5.5.1-RELEASE-ubuntu20.04.tar.gz
18-
RUN tar -xzf swift-5.5.1-RELEASE-ubuntu20.04.tar.gz
19-
RUN mv swift-5.5.1-RELEASE-ubuntu20.04 /opt/ && rm -f swift-5.5.1-RELEASE-ubuntu20.04.tar.gz
20-
RUN ln -s /opt/swift-5.5.1-RELEASE-ubuntu20.04 /opt/swift
17+
RUN wget -q https://download.swift.org/swift-5.10.1-release/ubuntu2404/swift-5.10.1-RELEASE/swift-5.10.1-RELEASE-ubuntu24.04.tar.gz
18+
RUN tar -xzf swift-5.10.1-RELEASE-ubuntu24.04.tar.gz
19+
RUN mv swift-5.10.1-RELEASE-ubuntu24.04 /opt/ && rm -f swift-5.10.1-RELEASE-ubuntu24.04.tar.gz
20+
RUN ln -s /opt/swift-5.10.1-RELEASE-ubuntu24.04 /opt/swift
2121

2222
ENV PATH=/opt/swift/usr/bin:${PATH}
2323

docker/all/run_ffead.sh

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ then
172172
then
173173
sed -i 's|QUEUED_WRITES=false|QUEUED_WRITES=true|g' $FFEAD_CPP_PATH/resources/server.prop
174174
fi
175-
for i in $(seq 0 $(($(nproc --all)-1))); do
175+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
176176
taskset -c $i ./ffead-cpp $FFEAD_CPP_PATH &
177177
done
178178
elif [ "$2" = "lithium" ]
@@ -225,18 +225,18 @@ then
225225
elif [ "$2" = "crystal-http" ]
226226
then
227227
cd ${IROOT}
228-
for i in $(seq 0 $(($(nproc --all)-1))); do
228+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
229229
taskset -c $i ./crystal-ffead-cpp.out --ffead-cpp-dir=$FFEAD_CPP_PATH --to=8080 &
230230
done
231231
elif [ "$2" = "crystal-h2o" ]
232232
then
233233
cd ${IROOT}
234-
for i in $(seq 0 $(($(nproc --all)-1))); do
234+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
235235
taskset -c $i ./h2o-evloop-ffead-cpp.out --ffead-cpp-dir=$FFEAD_CPP_PATH --to=8080 &
236236
done
237237
elif [ "$2" = "julia-http" ]
238238
then
239-
for i in $(seq 0 $(($(nproc --all)-1))); do
239+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
240240
julia ${IROOT}/lang-server-backends/julia/http.jl/server.jl $FFEAD_CPP_PATH
241241
done
242242
elif [ "$2" = "swift-nio" ]
@@ -274,7 +274,7 @@ then
274274
elif [ "$2" = "v-vweb" ]
275275
then
276276
cd ${IROOT}
277-
for i in $(seq 0 $(($(nproc --all)-1))); do
277+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
278278
taskset -c $i ./vweb --server_dir=$FFEAD_CPP_PATH --server_port=8080 &
279279
done
280280
elif [ "$2" = "v-picov" ]
@@ -283,7 +283,7 @@ then
283283
sed -i 's|EVH_SINGLE=false|EVH_SINGLE=true|g' $FFEAD_CPP_PATH/resources/server.prop
284284
if [ "$3" = "postgresql-raw-async" ]
285285
then
286-
for i in $(seq 0 $(($(nproc --all)-1))); do
286+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
287287
if [ "$6" = "pool" ]
288288
then
289289
if [ -f "main_async_pool" ]
@@ -298,7 +298,7 @@ then
298298
done
299299
else
300300
sed -i 's|"TeBkUmLpqRouter"|"TeBkUmLpqRouterPicoV"|g' ${WEB_DIR}/config/application.xml
301-
for i in $(seq 0 $(($(nproc --all)-1))); do
301+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
302302
taskset -c $i ./main --server_dir=$FFEAD_CPP_PATH --server_port=8080 --is_async=false &
303303
done
304304
fi
@@ -309,7 +309,6 @@ then
309309
-server \
310310
-XX:+UseNUMA \
311311
-XX:+UseParallelGC \
312-
-XX:+AggressiveOpts \
313312
-Dlite=false \
314313
-Dcore=1 \
315314
-Dframe=16 \
@@ -327,13 +326,13 @@ then
327326
elif [ "$2" = "java-rapidoid" ]
328327
then
329328
cd ${IROOT}
330-
java -server -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts \
329+
java -server -XX:+UseNUMA -XX:+UseParallelGC \
331330
-classpath rapidoid-ffead-cpp-1.0-jar-with-dependencies.jar \
332331
com.rapidoid.ffeadcpp.Main $FFEAD_CPP_PATH 8080 profiles=production
333332
elif [ "$2" = "java-wizzardo-http" ]
334333
then
335334
cd ${IROOT}
336-
java -Xmx2G -Xms2G -server -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts \
335+
java -Xmx2G -Xms2G -server -XX:+UseNUMA -XX:+UseParallelGC \
337336
-jar wizzardo-ffead-cpp-all-1.0.jar $FFEAD_CPP_PATH 8080 env=prod
338337
elif [ "$2" = "seastar" ]
339338
then

docker/te/run_ffead.sh

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ then
172172
then
173173
sed -i 's|QUEUED_WRITES=false|QUEUED_WRITES=true|g' $FFEAD_CPP_PATH/resources/server.prop
174174
fi
175-
for i in $(seq 0 $(($(nproc --all)-1))); do
175+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
176176
taskset -c $i ./ffead-cpp $FFEAD_CPP_PATH &
177177
done
178178
elif [ "$2" = "lithium" ]
@@ -212,18 +212,18 @@ then
212212
elif [ "$2" = "crystal-http" ]
213213
then
214214
cd ${IROOT}
215-
for i in $(seq 0 $(($(nproc --all)-1))); do
215+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
216216
taskset -c $i ./crystal-ffead-cpp.out --ffead-cpp-dir=$FFEAD_CPP_PATH --to=8080 &
217217
done
218218
elif [ "$2" = "crystal-h2o" ]
219219
then
220220
cd ${IROOT}
221-
for i in $(seq 0 $(($(nproc --all)-1))); do
221+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
222222
taskset -c $i ./h2o-evloop-ffead-cpp.out --ffead-cpp-dir=$FFEAD_CPP_PATH --to=8080 &
223223
done
224224
elif [ "$2" = "julia-http" ]
225225
then
226-
for i in $(seq 0 $(($(nproc --all)-1))); do
226+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
227227
julia ${IROOT}/lang-server-backends/julia/http.jl/server.jl $FFEAD_CPP_PATH
228228
done
229229
elif [ "$2" = "swift-nio" ]
@@ -261,7 +261,7 @@ then
261261
elif [ "$2" = "v-vweb" ]
262262
then
263263
cd ${IROOT}
264-
for i in $(seq 0 $(($(nproc --all)-1))); do
264+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
265265
taskset -c $i ./vweb --server_dir=$FFEAD_CPP_PATH --server_port=8080 &
266266
done
267267
elif [ "$2" = "v-picov" ]
@@ -271,7 +271,7 @@ then
271271
if [[ $3 == *"-async"* ]]
272272
then
273273
rm -f ${WEB_DIR}/config/cache.xml
274-
for i in $(seq 0 $(($(nproc --all)-1))); do
274+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
275275
if [ "$6" = "pool" ]
276276
then
277277
if [ -f "main_async_pool" ]
@@ -287,7 +287,7 @@ then
287287
else
288288
sed -i 's|"TeBkUmLpqRouter"|"TeBkUmLpqRouterPicoV"|g' ${WEB_DIR}/config/application.xml
289289
sed -i 's|"TeBkUmFpgRouter"|"TeBkUmFpgRouterPicoV"|g' ${WEB_DIR}/config/application.xml
290-
for i in $(seq 0 $(($(nproc --all)-1))); do
290+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
291291
taskset -c $i ./main --server_dir=$FFEAD_CPP_PATH --server_port=8080 --is_async=false &
292292
done
293293
fi
@@ -298,7 +298,6 @@ then
298298
-server \
299299
-XX:+UseNUMA \
300300
-XX:+UseParallelGC \
301-
-XX:+AggressiveOpts \
302301
-Dlite=false \
303302
-Dcore=1 \
304303
-Dframe=16 \
@@ -316,13 +315,13 @@ then
316315
elif [ "$2" = "java-rapidoid" ]
317316
then
318317
cd ${IROOT}
319-
java -server -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts \
318+
java -server -XX:+UseNUMA -XX:+UseParallelGC \
320319
-classpath rapidoid-ffead-cpp-1.0-jar-with-dependencies.jar \
321320
com.rapidoid.ffeadcpp.Main $FFEAD_CPP_PATH 8080 profiles=production
322321
elif [ "$2" = "java-wizzardo-http" ]
323322
then
324323
cd ${IROOT}
325-
java -Xmx2G -Xms2G -server -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts \
324+
java -Xmx2G -Xms2G -server -XX:+UseNUMA -XX:+UseParallelGC \
326325
-jar wizzardo-ffead-cpp-all-1.0.jar $FFEAD_CPP_PATH 8080 env=prod
327326
elif [ "$2" = "seastar" ]
328327
then

docker/te/tekp/run_ffead.sh

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ then
172172
then
173173
sed -i 's|QUEUED_WRITES=false|QUEUED_WRITES=true|g' $FFEAD_CPP_PATH/resources/server.prop
174174
fi
175-
for i in $(seq 0 $(($(nproc --all)-1))); do
175+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
176176
taskset -c $i ./ffead-cpp $FFEAD_CPP_PATH &
177177
done
178178
elif [ "$2" = "lithium" ]
@@ -212,18 +212,18 @@ then
212212
elif [ "$2" = "crystal-http" ]
213213
then
214214
cd ${IROOT}
215-
for i in $(seq 0 $(($(nproc --all)-1))); do
215+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
216216
taskset -c $i ./crystal-ffead-cpp.out --ffead-cpp-dir=$FFEAD_CPP_PATH --to=8080 &
217217
done
218218
elif [ "$2" = "crystal-h2o" ]
219219
then
220220
cd ${IROOT}
221-
for i in $(seq 0 $(($(nproc --all)-1))); do
221+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
222222
taskset -c $i ./h2o-evloop-ffead-cpp.out --ffead-cpp-dir=$FFEAD_CPP_PATH --to=8080 &
223223
done
224224
elif [ "$2" = "julia-http" ]
225225
then
226-
for i in $(seq 0 $(($(nproc --all)-1))); do
226+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
227227
julia ${IROOT}/lang-server-backends/julia/http.jl/server.jl $FFEAD_CPP_PATH
228228
done
229229
elif [ "$2" = "swift-nio" ]
@@ -261,7 +261,7 @@ then
261261
elif [ "$2" = "v-vweb" ]
262262
then
263263
cd ${IROOT}
264-
for i in $(seq 0 $(($(nproc --all)-1))); do
264+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
265265
taskset -c $i ./vweb --server_dir=$FFEAD_CPP_PATH --server_port=8080 &
266266
done
267267
elif [ "$2" = "v-picov" ]
@@ -271,7 +271,7 @@ then
271271
if [[ $3 == *"-async"* ]]
272272
then
273273
rm -f ${WEB_DIR}/config/cache.xml
274-
for i in $(seq 0 $(($(nproc --all)-1))); do
274+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
275275
if [ "$6" = "pool" ]
276276
then
277277
if [ -f "main_async_pool" ]
@@ -287,7 +287,7 @@ then
287287
else
288288
sed -i 's|"TeBkUmLpqRouter"|"TeBkUmLpqRouterPicoV"|g' ${WEB_DIR}/config/application.xml
289289
sed -i 's|"TeBkUmFpgRouter"|"TeBkUmFpgRouterPicoV"|g' ${WEB_DIR}/config/application.xml
290-
for i in $(seq 0 $(($(nproc --all)-1))); do
290+
for i in $(seq 0 $(($(taskset 1 getconf _NPROCESSORS_ONLN)-1))); do
291291
taskset -c $i ./main --server_dir=$FFEAD_CPP_PATH --server_port=8080 --is_async=false &
292292
done
293293
fi
@@ -298,7 +298,6 @@ then
298298
-server \
299299
-XX:+UseNUMA \
300300
-XX:+UseParallelGC \
301-
-XX:+AggressiveOpts \
302301
-Dlite=false \
303302
-Dcore=1 \
304303
-Dframe=16 \
@@ -316,13 +315,13 @@ then
316315
elif [ "$2" = "java-rapidoid" ]
317316
then
318317
cd ${IROOT}
319-
java -server -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts \
318+
java -server -XX:+UseNUMA -XX:+UseParallelGC \
320319
-classpath rapidoid-ffead-cpp-1.0-jar-with-dependencies.jar \
321320
com.rapidoid.ffeadcpp.Main $FFEAD_CPP_PATH 8080 profiles=production
322321
elif [ "$2" = "java-wizzardo-http" ]
323322
then
324323
cd ${IROOT}
325-
java -Xmx2G -Xms2G -server -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts \
324+
java -Xmx2G -Xms2G -server -XX:+UseNUMA -XX:+UseParallelGC \
326325
-jar wizzardo-ffead-cpp-all-1.0.jar $FFEAD_CPP_PATH 8080 env=prod
327326
elif [ "$2" = "seastar" ]
328327
then

lang-server-backends/crystal/h2o.cr/h2o-evloop-ffead-cpp.cr

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ class H2oFfeadCppCry < H2o
7979
freq.headers_len = counter
8080

8181
scode = 0
82-
smsg_len: UInt64 = 0
83-
out_mime_len: UInt64 = 0
84-
out_url_len: UInt64 = 0
85-
out_headers_len: UInt64 = 0
86-
out_body_len: UInt64 = 0
82+
smsg_len: UInt64 = 0_u64
83+
out_mime_len: UInt64 = 0_u64
84+
out_url_len: UInt64 = 0_u64
85+
out_headers_len: UInt64 = 0_u64
86+
out_body_len: UInt64 = 0_u64
8787

8888
FfeadCppRespTL.set LibFfeadCpp.ffead_cpp_handle_crystal_js_1(pointerof(freq), pointerof(scode), out smsg, pointerof(smsg_len), out out_mime, pointerof(out_mime_len),
8989
out out_url, pointerof(out_url_len), freq.headers, pointerof(out_headers_len), out out_body, pointerof(out_body_len))

lang-server-backends/swift/swift-nio/app/Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lang-server-backends/swift/swift-nio/app/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ let package = Package(
1010
.executable(name: "app", targets: ["App"])
1111
],
1212
dependencies: [
13-
.package(url: "https://github.com/apple/swift-nio.git", from: "2.0.0"),
13+
.package(url: "https://github.com/apple/swift-nio.git", from: "2.66.0"),
1414
.package(path: "../FfeadCpp"),
1515
],
1616
targets: [

0 commit comments

Comments
 (0)