Closed AtarisMio closed 2 years ago
@creasy2010
@hufeng 或者这个从jexpose
那边修也行
Maybe, this bug should be fixed by jexpose
.
好来,我来review下 😄
Ataris notifications@github.com 于2019年11月1日周五 下午5:17写道:
@hufeng https://github.com/hufeng 或者这个从jexpose那边修也行
Maybe, this bug should be fixed by jexpose.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/apache/dubbo-js/issues/145?email_source=notifications&email_token=AAECEEDE6LCDXM7HOZ54SPLQRPX33A5CNFSM4JHECSHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC2M2YI#issuecomment-548719969, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAECEEBKYFN4C7WBZF5MYZTQRPX33ANCNFSM4JHECSHA .
这段删掉就万事大吉了
@sunchuanleihit 直接删除不太好吧,,,可能加个什么参数,然后有参数的时候不输出好些。这个我感觉应该算是jexpose
的一个feature吧
@AtarisMio
Sometime the stdout of jexpose is panic.
没有明白,可以麻烦具体说一下为什么 jexpose 的 stdout 会 panic 吗? 我回忆到之前有一个 PR 往 jexpose 提交,也是去掉 elapsed time,当我回复了为什么要去掉的时候,作者就关了 PR, 估计是我的回复让他感觉我不会合并他的代码了 - -
我感觉和 @AtarisMio 说的差不多。这个 elapsed time 说是 feature 也略牵强,但是通过移除这个输出也是没有解决问题的根本。问题的根本是目前 jexpose 和 下游的 translator 之间的信息传递方式是不恰当的。jexpose 应该提供一个参数让下游指定输出的位置,然后 jexpose 把目前输出到 stdout 的内容结构化地输出到该位置。比如,下游指定输出到 /tmp/some-random-path.json
,然后 /tmp/some-random-path.json
的内容为:
{
"code": 0,
"data": {},
"message": ""
}
这样下游才能准确地得到执行的结果。
我们接下来的计划是把用 jexpose 实现的部分用 ts 重写,合并到这个项目中,这样以后不会要分别维护两个不同的 codebase 而且是不同的语言实现。
当然现阶段的问题也是需要解决的,所以如果目前没有好的方案,而 @sunchuanleihit 的建议改动又最小的话,我觉得也不失为一个解决方案。因为接下来计划对 jexpose 和 translator 进行重构,所以比较大的修改希望可以尽可能的先避免。
@hsiaosiyuan0 原因的话,大致是因为这个,可能遇jre版本有关系。我这里提供了我运行的dockerfile,我在这个环境中可以稳定复现。
FROM maven:3-jdk-13-alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# set timezone for alpine
RUN apk add --no-cache tzdata \
&& /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apk del tzdata
RUN echo 'Asia/Shanghai' >/etc/timezone
ENV NODE_VERSION 10.17.0
RUN addgroup -g 1000 node \
&& adduser -u 1000 -G node -s /bin/sh -D node \
&& apk add --no-cache \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
curl \
tar \
xz
RUN echo "Building from source" \
&& apk add --no-cache --virtual .build-deps-full \
binutils-gold \
g++ \
gcc \
gnupg \
libgcc \
linux-headers \
make \
python
RUN curl -fsSLO --compressed "https://npm.taobao.org/mirrors/node/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
&& ls "node-v$NODE_VERSION.tar.xz" \
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
&& cd "node-v$NODE_VERSION" \
&& ./configure \
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
&& make install \
&& apk del .build-deps-full \
&& cd .. \
&& rm -Rf "node-v$NODE_VERSION" \
&& rm "node-v$NODE_VERSION.tar.xz" \
&& apk del .build-deps
ENV YARN_VERSION 1.19.1
RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar
RUN curl -fsSLO --compressed "https://npm.taobao.org/mirrors/yarn/v$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
&& ls \
&& mkdir -p /opt \
&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
&& rm yarn-v$YARN_VERSION.tar.gz \
&& apk del .build-deps-yarn
RUN apk add --no-cache git
CMD [ "node" ]
@AtarisMio 不是吧,那个问题是因为 +
导致自动调用了 char[]
类型上的 toString()
方法吧,那个问题也不是“混乱”吧 [C @ 56e5b723
前面的 [C
应该表示的就是打印的对象的类型吧(后面是啥忘记了)
我猜是不是上面的 PrintStream
我设置了 autoFlush
而这个 API 在不同的版本里面有差异?
@hsiaosiyuan0 哦对不起 最近睡得有点少,,,有点犯迷糊看错了
这个问题是因为 有时候 println 2此输出被合并成一条输出返回了。偶现。所以导致根据Output at 字符串的判断失效问题。
Describe the bug intercept a jar not filter the elapse time. Sometime the stdout of
jexpose
is panic. The elapse time will concat to path.To Reproduce Steps to reproduce the behavior:
elapsed: 1.295s