起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1296|回复: 4

[结贴] weX5服务器线程死锁

[复制链接]

17

主题

72

帖子

186

积分

初级会员

Rank: 2

积分
186
QQ
发表于 2015-6-23 21:49:36 | 显示全部楼层 |阅读模式
今日发现,wex5服务器会死锁。

  原因是有个mainserverlet里面有个类似编译功能的东西,它会调用log.info写日志。
  经常发现服务器失去响应了,是几个线程都卡在log.info的地方。。

  具体的情况,明天我把堆栈发出来给大家看。

  我用的服务器是3.1版

17

主题

72

帖子

186

积分

初级会员

Rank: 2

积分
186
QQ
 楼主| 发表于 2015-6-23 22:33:11 | 显示全部楼层
拥有的对象:BufferedOutputStream  (id=35)   
拥有的对象:PrintStream  (id=36)   
拥有的对象:OutputStreamWriter  (id=37)   
拥有的对象:ConsoleAppender  (id=38)   
拥有的对象:RootLogger  (id=39)   
FileOutputStream.writeBytes(byte[], int, int, boolean) 行: 不可用 [本机方法]   
FileOutputStream.write(byte[], int, int) 行: 345   
BufferedOutputStream.flushBuffer() 行: 82   
BufferedOutputStream.flush() 行: 140   
PrintStream.write(byte[], int, int) 行: 482   
SystemLogHandler.write(byte[], int, int) 行: 166   
StreamEncoder.writeBytes() 行: 221   
StreamEncoder.implFlushBuffer() 行: 291   
StreamEncoder.implFlush() 行: 295   
StreamEncoder.flush() 行: 141   
OutputStreamWriter.flush() 行: 229   
QuietWriter.flush() 行: 57   
ConsoleAppender(WriterAppender).subAppend(LoggingEvent) 行: 315   
ConsoleAppender(WriterAppender).append(LoggingEvent) 行: 159   
ConsoleAppender(AppenderSkeleton).doAppend(LoggingEvent) 行: 230   
AppenderAttachableImpl.appendLoopOnAppenders(LoggingEvent) 行: 65   
Logger(Category).callAppenders(LoggingEvent) 行: 203   
Logger(Category).forcedLog(String, Priority, Object, Throwable) 行: 388   
Logger(Category).info(Object) 行: 663   
WindowCompiler2.w2Middle(String, String) 行: 不可用   
WindowCompiler2.compile(HttpServletRequest, HttpServletResponse, String, String) 行

: 不可用   
WindowServer2.compileWindow(HttpServletRequest, HttpServletResponse) 行: 不可用   
WindowServer2.service(HttpServletRequest, HttpServletResponse) 行: 不可用   
MainServlet.service(HttpServletRequest, HttpServletResponse) 行: 不可用   
MainServlet(HttpServlet).service(ServletRequest, ServletResponse) 行: 723   
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) 行: 290   
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) 行: 206   
RedirectFilter.doFilter(ServletRequest, ServletResponse, FilterChain) 行: 不可用   
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) 行: 235   
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) 行: 206   
StandardWrapperValve.invoke(Request, Response) 行: 233   
StandardContextValve.invoke(Request, Response) 行: 191   
StandardHostValve.invoke(Request, Response) 行: 127   
ErrorReportValve.invoke(Request, Response) 行: 103   
StandardEngineValve.invoke(Request, Response) 行: 109   
CoyoteAdapter.service(Request, Response) 行: 293   
Http11Processor.process(Socket) 行: 861   
Http11Protocol$Http11ConnectionHandler.process(Socket) 行: 606   
JIoEndpoint$Worker.run() 行: 489   
Thread.run() 行: 745   
回复 支持 反对

使用道具 举报

17

主题

72

帖子

186

积分

初级会员

Rank: 2

积分
186
QQ
 楼主| 发表于 2015-6-23 22:33:37 | 显示全部楼层
上面是死锁的一个线程的堆栈
回复 支持 反对

使用道具 举报

17

主题

72

帖子

186

积分

初级会员

Rank: 2

积分
186
QQ
 楼主| 发表于 2015-6-23 23:07:08 | 显示全部楼层
是不是把log关闭就可以了?
回复 支持 反对

使用道具 举报

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2015-6-24 16:58:39 | 显示全部楼层
不是死锁,WeX5编译的时候是单线程的
tomcat在studio外面启动时,会使用缓存,不会编译,所以不会死锁
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-23 19:36 , Processed in 0.050650 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表