一个Java致命错误异常,求解决。。。

小痴 发布于 2013/07/31 20:14
阅读 11K+
收藏 1

服务端跑了4天了,突然在项目里出现了一个hs_err_pid7488.log

程序也吊死了。

错误日志里面记录如下:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d982114, pid=7488, tid=11864
#
# JRE version: 6.0_45-b06
# Java VM: Java HotSpot(TM) Client VM (20.45-b01 mixed mode, sharing windows-x86 )
# Problematic frame:
# V  [jvm.dll+0xa2114]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#


---------------  T H R E A D  ---------------


Current thread (0x04eefc00):  JavaThread "Thread-4" [_thread_in_vm, id=11864, stack(0x04d20000,0x04d70000)]


siginfo: ExceptionCode=0xc0000005, reading address 0x0a000104


Registers:
EAX=0x000472d8, EBX=0x04eefc00, ECX=0x00011cb6, EDX=0x000472d8
ESP=0x04d6f79c, EBP=0x04d6f7b8, ESI=0x0a000104, EDI=0x245581fc
EIP=0x6d982114, EFLAGS=0x00010202


Top of Stack: (sp=0x04d6f79c)
0x04d6f79c:   04eefc00 04d6f8c4 00000000 04eefc00
0x04d6f7ac:   00000000 00000000 38f03158 04d6f898
0x04d6f7bc:   10004ce9 04eefc00 04d6f8bc 00000000
0x04d6f7cc:   000472d8 0a000104 00000000 0080f06c
0x04d6f7dc:   2459f4d8 245581f0 04d6f7f4 6d9476f0
0x04d6f7ec:   00000000 24600000 04d6f800 6d93a422
0x04d6f7fc:   00011cba 04d6f880 00011cba 245581f0
0x04d6f80c:   6d9382cb 00011cba 04eefc00 00011cba 


Instructions: (pc=0x6d982114)
0x6d9820f4:   ce 77 3f 85 c0 7e 22 8b 4a 04 8b 49 0c 8b 75 18
0x6d982104:   83 e1 3f d3 e0 8d 7c 3a 0c 8b c8 8b d1 c1 e9 02
0x6d982114:   f3 a5 8b ca 83 e1 03 f3 a4 8b 45 f4 85 c0 74 08
0x6d982124:   8d 4d f0 e8 34 07 09 00 8d 4d 08 e8 9c 09 f6 ff 




Register to memory mapping:


EAX=0x000472d8 is an unknown value
EBX=0x04eefc00 is a thread
ECX=0x00011cb6 is an unknown value
EDX=0x000472d8 is an unknown value
ESP=0x04d6f79c is pointing into the stack for thread: 0x04eefc00
EBP=0x04d6f7b8 is pointing into the stack for thread: 0x04eefc00
ESI=0x0a000104 is an unknown value
EDI=
[error occurred during error reporting (printing register info), id 0xc0000005]


Stack: [0x04d20000,0x04d70000],  sp=0x04d6f79c,  free space=317k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0xa2114]
C  [jna2813806100770069604.tmp+0x4ce9]  Java_com_sun_jna_Pointer__1read__J_3BII+0x8f
J  com.sun.jna.Pointer._read(J[BII)V
J  com.sun.jna.Pointer.read(J[BII)V
j  com.comm.park.core.PlateHandleRequest.commandHandler(Lcom/sun/jna/NativeLong;Lcom/comm/park/dll/HCNetSDK$NET_DVR_ALARMER;Lcom/comm/park/dll/HCNetSDK$RECV_ALARM;)V+147
j  com.comm.park.core.PlateHandleRequest.process()V+13
J  com.comm.park.core.ProcessThread.run()V
V  [jvm.dll+0xfb88b]
V  [jvm.dll+0x18d551]
V  [jvm.dll+0xfba31]
V  [jvm.dll+0xfba8b]
V  [jvm.dll+0xb5e89]
V  [jvm.dll+0x119b74]
V  [jvm.dll+0x14217c]
C  [msvcr71.dll+0x9565]  endthreadex+0xa0
C  [kernel32.dll+0x133aa]  BaseThreadInitThunk+0x12
C  [ntdll.dll+0x39ef2]  RtlInitializeExceptionChain+0x63
C  [ntdll.dll+0x39ec5]  RtlInitializeExceptionChain+0x36


Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J  com.sun.jna.Pointer._read(J[BII)V
J  com.sun.jna.Pointer.read(J[BII)V
j  com.sun.jna.Pointer.getByteArray(JI)[B+11
j  com.comm.park.core.PlateHandleRequest.commandHandler(Lcom/sun/jna/NativeLong;Lcom/comm/park/dll/HCNetSDK$NET_DVR_ALARMER;Lcom/comm/park/dll/HCNetSDK$RECV_ALARM;)V+147
j  com.comm.park.core.PlateHandleRequest.process()V+13
J  com.comm.park.core.ProcessThread.run()V
v  ~StubRoutines::call_stub


---------------  P R O C E S S  ---------------


Java Threads: ( => current thread )
  0x04f66c00 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=12188, stack(0x08300000,0x08350000)]
  0x04f66400 JavaThread "pool-2-thread-20" [_thread_blocked, id=10736, stack(0x07ad0000,0x07b20000)]
  0x04f66000 JavaThread "pool-2-thread-19" [_thread_blocked, id=10532, stack(0x07530000,0x07580000)]
  0x04f65800 JavaThread "pool-2-thread-18" [_thread_blocked, id=6936, stack(0x074a0000,0x074f0000)]
  0x04f65400 JavaThread "pool-2-thread-17" [_thread_blocked, id=8964, stack(0x07410000,0x07460000)]
  0x04f01c00 JavaThread "pool-2-thread-16" [_thread_blocked, id=4420, stack(0x07380000,0x073d0000)]
  0x04f01800 JavaThread "pool-2-thread-15" [_thread_blocked, id=9076, stack(0x072f0000,0x07340000)]
  0x04f01000 JavaThread "pool-2-thread-14" [_thread_blocked, id=12100, stack(0x07260000,0x072b0000)]
  0x04f00c00 JavaThread "pool-2-thread-13" [_thread_blocked, id=4436, stack(0x071d0000,0x07220000)]
  0x04f00400 JavaThread "pool-2-thread-12" [_thread_blocked, id=5936, stack(0x07140000,0x07190000)]
  0x04f00000 JavaThread "pool-2-thread-11" [_thread_blocked, id=7784, stack(0x070b0000,0x07100000)]
  0x04eff800 JavaThread "pool-2-thread-10" [_thread_blocked, id=8000, stack(0x07020000,0x07070000)]
  0x04eff000 JavaThread "pool-2-thread-9" [_thread_blocked, id=12204, stack(0x06f90000,0x06fe0000)]
  0x04efec00 JavaThread "pool-2-thread-8" [_thread_blocked, id=7840, stack(0x04aa0000,0x04af0000)]
  0x04efe400 JavaThread "pool-2-thread-7" [_thread_blocked, id=5796, stack(0x06f00000,0x06f50000)]
  0x04efe000 JavaThread "pool-2-thread-6" [_thread_blocked, id=8740, stack(0x06e70000,0x06ec0000)]
  0x04efd800 JavaThread "pool-2-thread-5" [_thread_blocked, id=10528, stack(0x06de0000,0x06e30000)]
  0x04efd400 JavaThread "pool-2-thread-4" [_thread_blocked, id=11840, stack(0x06d50000,0x06da0000)]
  0x04efcc00 JavaThread "pool-2-thread-3" [_thread_blocked, id=8288, stack(0x06cc0000,0x06d10000)]
  0x04efc400 JavaThread "pool-2-thread-2" [_thread_blocked, id=2520, stack(0x06c30000,0x06c80000)]
  0x04efc000 JavaThread "pool-2-thread-1" [_thread_blocked, id=10744, stack(0x05eb0000,0x05f00000)]
  0x04efb800 JavaThread "DestroyJavaVM" [_thread_blocked, id=12080, stack(0x003a0000,0x003f0000)]
  0x04efb400 JavaThread "pool-1-thread-2" [_thread_blocked, id=11664, stack(0x05e20000,0x05e70000)]
  0x04efac00 JavaThread "Thread-8" [_thread_blocked, id=1340, stack(0x05d60000,0x05db0000)]
  0x04efa800 JavaThread "pool-1-thread-1" [_thread_blocked, id=11444, stack(0x052e0000,0x05330000)]
  0x04ef8000 JavaThread "Thread-6" [_thread_blocked, id=5692, stack(0x05250000,0x052a0000)]
  0x04ef0400 JavaThread "Thread-5" [_thread_blocked, id=9260, stack(0x05200000,0x05250000)]
=>0x04eefc00 JavaThread "Thread-4" [_thread_in_vm, id=11864, stack(0x04d20000,0x04d70000)]
  0x04eef800 JavaThread "Thread-3" [_thread_blocked, id=9628, stack(0x04c90000,0x04ce0000)]
  0x047df400 JavaThread "Prototyper" daemon [_thread_blocked, id=7860, stack(0x04c00000,0x04c50000)]
  0x04807000 JavaThread "HouseKeeper" daemon [_thread_blocked, id=7960, stack(0x04b30000,0x04b80000)]
  0x01fd6800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=11256, stack(0x045d0000,0x04620000)]
  0x01fbd800 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=11948, stack(0x04540000,0x04590000)]
  0x01fbc800 JavaThread "Attach Listener" daemon [_thread_blocked, id=7032, stack(0x044b0000,0x04500000)]
  0x01fb9800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=11276, stack(0x04420000,0x04470000)]
  0x01fab800 JavaThread "Finalizer" daemon [_thread_blocked, id=8144, stack(0x04390000,0x043e0000)]
  0x01faa400 JavaThread "Reference Handler" daemon [_thread_blocked, id=11956, stack(0x04300000,0x04350000)]


Other Threads:
  0x01f6e000 VMThread [stack: 0x04270000,0x042c0000] [id=8304]
  0x01ff0000 WatcherThread [stack: 0x04660000,0x046b0000] [id=12152]


VM state:synchronizing (normal execution)


VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x00807e80] Threads_lock - owner thread: 0x01f6e000
[0x00808290] Heap_lock - owner thread: 0x04efac00


Heap
 def new generation   total 5248K, used 5207K [0x24170000, 0x24720000, 0x296c0000)
  eden space 4672K, 100% used [0x24170000, 0x24600000, 0x24600000)
  from space 576K,  92% used [0x24690000, 0x24715ea8, 0x24720000)
  to   space 576K,   0% used [0x24600000, 0x24600000, 0x24690000)
 tenured generation   total 11360K, used 7448K [0x296c0000, 0x2a1d8000, 0x34170000)
   the space 11360K,  65% used [0x296c0000, 0x29e06010, 0x29e06200, 0x2a1d8000)
 compacting perm gen  total 12288K, used 8114K [0x34170000, 0x34d70000, 0x38170000)
   the space 12288K,  66% used [0x34170000, 0x3495c858, 0x3495ca00, 0x34d70000)
    ro space 10240K,  55% used [0x38170000, 0x386f3dd8, 0x386f3e00, 0x38b70000)
    rw space 12288K,  55% used [0x38b70000, 0x39216cd0, 0x39216e00, 0x39770000)


Code Cache  [0x02050000, 0x023d0000, 0x04050000)
 total_blobs=1579 nmethods=1422 adapters=92 free_code_cache=29914880 largest_free_block=11328


Dynamic libraries:
0x00400000 - 0x00425000 C:\Program Files (x86)\Java\jdk1.6.0_45\bin\java.exe
0x772b0000 - 0x77430000 C:\Windows\SysWOW64\ntdll.dll
0x749f0000 - 0x74b00000 C:\Windows\syswow64\kernel32.dll
0x76470000 - 0x764b7000 C:\Windows\syswow64\KERNELBASE.dll
0x763d0000 - 0x76470000 C:\Windows\syswow64\ADVAPI32.dll
0x75dc0000 - 0x75e6c000 C:\Windows\syswow64\msvcrt.dll
0x74bf0000 - 0x74c09000 C:\Windows\SysWOW64\sechost.dll
0x75fb0000 - 0x760a0000 C:\Windows\syswow64\RPCRT4.dll
0x74870000 - 0x748d0000 C:\Windows\syswow64\SspiCli.dll
0x74860000 - 0x7486c000 C:\Windows\syswow64\CRYPTBASE.dll
0x7c340000 - 0x7c396000 C:\Program Files (x86)\Java\jdk1.6.0_45\jre\bin\msvcr71.dll
0x6d8e0000 - 0x6db90000 C:\Program Files (x86)\Java\jdk1.6.0_45\jre\bin\client\jvm.dll
0x762d0000 - 0x763d0000 C:\Windows\syswow64\USER32.dll
0x76a10000 - 0x76aa0000 C:\Windows\syswow64\GDI32.dll
0x766a0000 - 0x766aa000 C:\Windows\syswow64\LPK.dll
0x76230000 - 0x762cd000 C:\Windows\syswow64\USP10.dll
0x76160000 - 0x76192000 C:\Windows\syswow64\WINMM.dll
0x768c0000 - 0x76920000 C:\Windows\system32\IMM32.DLL
0x76940000 - 0x76a0c000 C:\Windows\syswow64\MSCTF.dll
0x72820000 - 0x7286c000 C:\Windows\system32\apphelp.dll
0x6d890000 - 0x6d89c000 C:\Program Files (x86)\Java\jdk1.6.0_45\jre\bin\verify.dll
0x6d3e0000 - 0x6d3ff000 C:\Program Files (x86)\Java\jdk1.6.0_45\jre\bin\java.dll
0x6d8d0000 - 0x6d8df000 C:\Program Files (x86)\Java\jdk1.6.0_45\jre\bin\zip.dll
0x6d6c0000 - 0x6d6d3000 C:\Program Files (x86)\Java\jdk1.6.0_45\jre\bin\net.dll
0x75d70000 - 0x75da5000 C:\Windows\syswow64\WS2_32.dll
0x76690000 - 0x76696000 C:\Windows\syswow64\NSI.dll
0x74040000 - 0x7407c000 C:\Windows\system32\mswsock.dll
0x72bf0000 - 0x72bf6000 C:\Windows\System32\wship6.dll
0x72260000 - 0x72265000 C:\Windows\System32\wshtcpip.dll
0x73ff0000 - 0x74034000 C:\Windows\system32\DNSAPI.dll
0x746c0000 - 0x746dc000 C:\Windows\system32\IPHLPAPI.DLL
0x746b0000 - 0x746b7000 C:\Windows\system32\WINNSI.DLL
0x72210000 - 0x72216000 C:\Windows\system32\rasadhlp.dll
0x72220000 - 0x72258000 C:\Windows\System32\fwpuclnt.dll
0x72310000 - 0x72320000 C:\Windows\system32\NLAapi.dll
0x72300000 - 0x72310000 C:\Windows\system32\napinsp.dll
0x72270000 - 0x72278000 C:\Windows\System32\winrnr.dll
0x73d70000 - 0x73d86000 C:\Windows\system32\CRYPTSP.dll
0x73d30000 - 0x73d6b000 C:\Windows\system32\rsaenh.dll
0x74760000 - 0x74777000 C:\Windows\system32\USERENV.dll
0x74750000 - 0x7475b000 C:\Windows\system32\profapi.dll
0x10000000 - 0x10052000 C:\Users\Administrator\AppData\Local\Temp\jna2813806100770069604.tmp
0x05450000 - 0x05c1e000 D:\test\server_bak_20130730_2\HCNetSDK.dll
0x740a0000 - 0x740ad000 C:\Windows\system32\dhcpcsvc6.DLL
0x74080000 - 0x74092000 C:\Windows\system32\dhcpcsvc.DLL
0x6d0b0000 - 0x6d1fc000 C:\Program Files (x86)\Java\jdk1.6.0_45\jre\bin\awt.dll
0x72670000 - 0x726c1000 C:\Windows\system32\WINSPOOL.DRV
0x759b0000 - 0x75b0c000 C:\Windows\syswow64\ole32.dll
0x741b0000 - 0x7434e000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.dll
0x766b0000 - 0x76707000 C:\Windows\syswow64\SHLWAPI.dll
0x76d50000 - 0x76d55000 C:\Windows\system32\PSAPI.DLL


VM Arguments:
java_command: com.comm.park.enter.ProEnter
Launcher Type: SUN_STANDARD


Environment Variables:
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_45
CLASSPATH=.;C:\Program Files (x86)\Java\jdk1.6.0_45\lib;C:\Program Files (x86)\Java\jdk1.6.0_45\lib\tools.jar
PATH=C:\Program Files\HP\NCU;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Java\jdk1.6.0_45\bin;C:\Program Files (x86)\Java\jdk1.6.0_45\jre\bin;
USERNAME=Administrator
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 45 Stepping 7, GenuineIntel






---------------  S Y S T E M  ---------------


OS: Windows NT 6.1 , 64 bit Build 7601 Service Pack 1


CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 45 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt


Memory: 4k page, physical 16741828k(10260368k free), swap 33481796k(26532784k free)


vm_info: Java HotSpot(TM) Client VM (20.45-b01) for windows-x86 JRE (1.6.0_45-b06), built on Mar 26 2013 13:40:03 by "java_re" with MS VC++ 7.1 (VS2003)


time: Wed Jul 31 11:47:47 2013
elapsed time: 46916 seconds


我的程序开着56个线程,死之前一直很稳定。

请问是Java内存溢出异常吗?

需要申请多一点的内存吗?

加载中
1
mallon
mallon
  1. @中山野鬼 说得没错
  2. 敢用jni/jna的都是在玩火
  3. -Xms -Xmx 是java的一个很扯淡的设计
小痴
小痴
我的确用了JNA。。。
1
mallon
mallon

引用来自“震秦”的答案

引用来自“Mallon”的答案

  1. @中山野鬼 说得没错
  2. 敢用jni/jna的都是在玩火
  3. -Xms -Xmx 是java的一个很扯淡的设计

你一句话否定了Java十多年的设计.

虚拟机现在很多, Python, Ruby现在都是运行在虚拟机上的语言, 无论效率, 还是扩展性都未能到达JVM的程度. 还有内存回收根本无法达到可控. 

通俗的Java规范是分为两个的, Java语言设计规范和JVM设计规范, JVM从最初的设计就是可以运行多语言的. 他只是开放了更多的东西给程序员控制. 

没否定Java啊,任何技术都是有优缺点的啊,你不能因为自己喜欢Java就说它是一块完璧吧?搞技术的要客观
0
震秦
震秦
太多了, 来不及细看。 给你的程序加 -Xmx2G -Xms2G -Xmn1G试试吧1
0
猫哥-u
猫哥-u

JVM内部错误:

# Problematic frame:
# V  [jvm.dll+0xa2114]

把这个日志发给oracle吧,我们解决不了的
0
0
悟方向
悟方向

 com.sun.jna.Pointer._read(J[BII)V
J  com.sun.jna.Pointer.read(J[BII)V

eden space 4672K, 100% used [0x24170000, 0x24600000, 0x24600000) 

应当是你的程序调用本地库 内存不够用导致的 或者是导致写的有问题导致内存泄露 内存不够用   另外 我看你这个程序好像都没有配配置JVM的内存参数 用的是默认值 你可以考虑调整一下内存参数看看

临时演员
临时演员
回复 @临时演员 : Heap def new generation total 5248K, used 5207K [0x24170000, 0x24720000, 0x296c0000) eden space 4672K, 100% used [0x24170000, 0x24600000, 0x24600000)从这里看出来
临时演员
临时演员
回复 @小痴 : 根据日志以上我觉得有理,你堆栈内存参数未设置,Stack: [0x04d20000,0x04d70000], sp=0x04d6f79c, free space=317k大约是80M。 从这里可以看出年轻区已经满了。可以考虑设置一下堆内存参数。
小痴
小痴
我的确用了JNA调用本地dll库,外部有近百台设备与dll库保持长连接状态,并收发数据,调用本地库用的内存与JVM配置的内存有关吗?还是与系统内存有关?
0
中山野鬼
中山野鬼

说句风凉话啊,哈。java应该开源jvm等东东,这样可以有java高手,在平台出现问题是,如同linux高手那样,通过修改源码来debug。不然只能黑灯瞎火的试,试到最后通常会说“就这样吧。反正搞不定了”,哈。

别说我胡扯,如果服务器端用java,你在交付时,是给不出系统的负载边界的。例如最大可以支持多少,最快可以达到什么样的处理速度。java还是安心做前端的好。正常系统都有说明,在什么负载下可以有效运转。对于服务器端,如果是在虚拟机上的java代码,这个是测不出来的。都是试出来的。

小痴
小痴
回复 @红薯 : 我用的JNA调用本地dll库,外部有近百台设备与dll库保持长连接状态,并收发数据,调用本地库用的内存与JVM配置的内存有关吗?还是与系统内存有关?对JVM不太了解。。
南湖船老大
南湖船老大
哪凉快哪呆着去呗,最烦这种见缝插针说风凉话的。有本事就解决这个问题啊,这不是C层面的问题么。
中山野鬼
中山野鬼
回复 @红薯 : 肯定是应用出了问题做了不该做的事情。虚拟机现在有个设计悖论。即想完整的包裹上层以提升系统健壮性,又希望上层的应用可以做更多的事情,这样做,最终不会有妥善的方案的。
红薯
红薯
这种问题都是应用程序的代码出现问题导致的,一般人到不了 jvm 这一级:)
0
乾坤摄
乾坤摄
建议,先用java自带的工具jvisualvm 内存是不是无限制增长的,其次是导出dump文件,用mat 看下,你内存中的类的数量,看是否有对象未释放的情况 
0
南湖船老大
南湖船老大

JVM crash的原因可能是:
JVM内部实现的bug
native library的bug
Java应用层代码自身的bug
native memory耗光了
外部环境的影响

解决这种crash的最简单的就是先升级JVM到最新版,然后去oracle官方看看有没有相关的bug报告。如果升级后无法解决,再想办法重现,dump.

南湖船老大
南湖船老大
回复 @小痴 : 可以试试
小痴
小痴
回复 @好大的凶兆 : 我改这个对吧? -Xmx2G -Xms2G -Xmn1G
南湖船老大
南湖船老大
回复 @小痴 : 使用了JNI,NIO等申请的内存
小痴
小痴
谢谢你,我也感觉是我用的JNA有问题,我JVM没有配置内存,使用的是默认的,你说的native memory 是系统的内存还是JVM申请的内存?
0
中山野鬼
中山野鬼

引用来自“好大的凶兆”的答案

解决这种crash的最简单的就是先升级JVM到最新版,然后去oracle官方看看有没有相关的bug报告。

如果升级后无法解决,再想办法重现,dump

你知道为什么ubuntu很多人喜欢用 X.04 而不是X.10吗?因为通常.04是lts版本。做服务器,最大的忌讳就是平台升级。除非是业余开发的人,动不动就是,有问题?升级啊。本身java的平台,如果写代码没有特殊的逻辑错误,还不至于崩溃,不好好的查看自己的代码有什么问题,就知道升级。你觉得你这样是对开发平台负责任吗?真正专业的团队,对新平台,没有经过大量测试,不敢贸然升级,金融系统用10年,20年的老设备多了去了,就怕出问题。为了少折腾,甚至不愿意升级。业余的开发,就一定是,出了问题,就升级,升级貌似可以解决一切。你自己玩,没问题,但你这样对待客户,就是不负责的态度。
小痴
小痴
不管怎么样,谢谢你。
返回顶部
顶部