环境:Windows Server 2012 R2 on Amazon EC2/windows 10
骰子版本:mirai框架,Dice!版本2.6.7 built on 2021-06-18
通过内置的“更新”脚本更新后,使用“启动mirai”脚本登录,加载时一切正常,输入用户名密码登录后,在本行:
I/MiraiNative: [DiceDriver DiceDriver] Dice.loadData
出现如下错误信息弹窗,命令行闪退:
openJDK Platform binary has stopped working

回滚至2.5.1仍能正常使用。

  • 感谢你的反馈。
    此问题是由于在编码不兼容的Windows操作系统上加载文件(如英文版Windows加载中文文件名的文件),文件名编码没有被正确处理导致的。
    此问题会影响牌堆以及Lua脚本的加载。

    临时解决方案:
    将牌堆/Lua重命名为英文文件名后重试。(文件内容无需更改)

    已在20210808版本中修复,但由于技术原因,此修复只修复了这种情况下牌堆的加载,在编码不兼容时Lua脚本仍然不能加载导致程序崩溃,此问题会在后期优化。都修了。

invalidSyntax 将标题更改为 「[BUG反馈] Windows版本更新后loadData时报错」。

Deleted User 抱歉迟复。日志见下,在此之后直接跳错误信息弹窗了,命令行窗口闪退。
黑条为打码的账号密码。因为服务器命令行中文字库支持的关系汉字是乱码,不过据观察这一部分不影响使用。openJDK platform的弹窗没截到- -

Deleted User 再次尝试更新了一次,问题依旧- -。系统日志里的问题详情是这样的,没找到文件名类似hs_err_pid的log file:
(版本:抱歉之前看错了,mirai 2.6.7, dice! 2.5.2)

Log Name: Application
Source: Application Error
Date: 8/6/2021 3:33:44 PM
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Computer: WIN-4UASR0JEFBF
Description:
Faulting application name: java.exe, version: 11.0.10.0, time stamp: 0×6009598b
Faulting module name: Dice.Driver.CQ.dll, version: 0.0.0.0, time stamp: 0×60f2e672
Exception code: 0xc0000409
Fault offset: 0×0002c773
Faulting process id: 0xb84
Faulting application start time: 0×01d78ad83ff06907
Faulting application path: C:\Users\Administrator\Documents\COCDice\jre\bin\java.exe
Faulting module path: C:\Users\Administrator\Documents\COCDice\data\MiraiNative\plugins\windows\i386\Dice.Driver.CQ.dll
Report Id: aebd237b-f6cb-11eb-83d1-06950054d694
Faulting package full name:
Faulting package-relative application ID:

骰子本身最后一次尝试登录时的log如下:

2021-08-06 15:33:38 V/Net 3546314439: Loading BdhSession from cache file[0m
[0m2021-08-06 15:33:38 V/Net 3546314439: Loading server list from cache.[0m
[92m2021-08-06 15:33:38 I/Net 3546314439: Connected to server 36.155.249.120:443[0m
[0m2021-08-06 15:33:39 V/Net 3546314439: Send: wtlogin.exchange_emp[0m
[0m2021-08-06 15:33:39 V/Net 3546314439: Recv: LoginPacketResponse.Success[0m
[92m2021-08-06 15:33:39 I/Net 3546314439: Saved account secrets to local cache for fast login.[0m
[0m2021-08-06 15:33:39 V/Net 3546314439: Send: StatSvc.register[0m
[0m2021-08-06 15:33:39 V/Net 3546314439: Recv: Response(StatSvc.register)[0m
[92m2021-08-06 15:33:39 I/Net 3546314439: Awaiting ConfigPushSvc.PushReq.[0m
[92m2021-08-06 15:33:39 I/Net 3546314439: Syncing friend message history...[0m
[0m2021-08-06 15:33:39 V/Net 3546314439: Send: StatSvc.GetDevLoginInfo[0m
[0m2021-08-06 15:33:40 V/Net 3546314439: Recv: StatSvc.GetDevLoginInfo.Response(deviceList.size=1)[0m
[0m2021-08-06 15:33:40 V/Net 3546314439: Send: MessageSvc.PbGetMsg[0m
[0m2021-08-06 15:33:40 V/Net 3546314439: Send: MessageSvc.PbDeleteMsg[0m
[92m2021-08-06 15:33:40 I/Net 3546314439: Syncing friend message history: Success.[0m
[92m2021-08-06 15:33:40 I/Net 3546314439: Start loading stranger list...[0m
[0m2021-08-06 15:33:40 V/Net 3546314439: Send: OidbSvc.0x5d2_0[0m
[92m2021-08-06 15:33:40 I/Net 3546314439: Start loading friend list...[0m
[0m2021-08-06 15:33:41 V/Net 3546314439: Recv: StrangerList.GetStrangerList.Response(result=0)[0m
[92m2021-08-06 15:33:41 I/Net 3546314439: Successfully loaded stranger list: 0 in total[0m
[0m2021-08-06 15:33:41 V/Net 3546314439: Send: friendlist.getFriendGroupList[0m
[0m2021-08-06 15:33:41 V/Net 3546314439: Recv: FriendList.GetFriendGroupList.Response[0m
[0m2021-08-06 15:33:41 V/Net 3546314439: Loading friend list: 9/9[0m
[92m2021-08-06 15:33:41 I/Net 3546314439: Successfully loaded friend list: 9 in total[0m
[0m2021-08-06 15:33:41 V/Net 3546314439: Send: OidbSvc.0x496[0m
[0m2021-08-06 15:33:41 V/Net 3546314439: Recv: TroopManagement.GetTroopConfig.Response(true)[0m
[92m2021-08-06 15:33:41 I/Net 3546314439: Start loading group list...[0m
[0m2021-08-06 15:33:41 V/Net 3546314439: Send: friendlist.GetTroopListReqV2[0m
[0m2021-08-06 15:33:42 V/Net 3546314439: Recv: FriendList.GetFriendGroupList.Response[0m
[0m2021-08-06 15:33:42 V/Net 3546314439: Send: friendlist.GetTroopMemberListReq[0m
[0m2021-08-06 15:33:42 V/Net 3546314439: Recv: FriendList.GetTroopMemberList.Response[0m
[0m2021-08-06 15:33:42 V/Net 3546314439: Send: friendlist.GetTroopMemberListReq[0m
[0m2021-08-06 15:33:42 V/Net 3546314439: Recv: ConfigPushSvc.PushReq.PushReqResponse.ConfigPush[0m
[0m2021-08-06 15:33:42 V/Net 3546314439: Saving bdh session to cache[0m
[0m2021-08-06 15:33:42 V/Net 3546314439: Send: ConfigPushSvc.PushResp[0m
[96m2021-08-06 15:33:42 D/Net 3546314439: Received unknown commandName: ConfigPushSvc.PushDomain[0m
[92m2021-08-06 15:33:42 I/Net 3546314439: ConfigPushSvc.PushReq: Config updated.[0m
[0m2021-08-06 15:33:43 V/Net 3546314439: Recv: FriendList.GetTroopMemberList.Response[0m
[0m2021-08-06 15:33:43 V/Net 3546314439: Send: friendlist.GetTroopMemberListReq[0m
[0m2021-08-06 15:33:43 V/Net 3546314439: Recv: FriendList.GetTroopMemberList.Response[0m
[0m2021-08-06 15:33:43 V/Net 3546314439: Send: friendlist.GetTroopMemberListReq[0m
[0m2021-08-06 15:33:43 V/Net 3546314439: Recv: FriendList.GetTroopMemberList.Response[0m
[92m2021-08-06 15:33:43 I/Net 3546314439: Successfully loaded group list: 4 in total.[0m
[92m2021-08-06 15:33:43 I/Net 3546314439: Scheduled key refresh in 23h 59min 55.0s.[0m
[92m2021-08-06 15:33:43 I/Net 3546314439: Scheduled refresh login session in 19d 23h 59min 55.0s.[0m
[0m2021-08-06 15:33:43 V/Net 3546314439: Send: SummaryCard.ReqSummaryCard[0m
[0m2021-08-06 15:33:44 V/Net 3546314439: Recv: UserProfile(nickname= email=, age=28, qLevel=11, sex=MALE, sign=)[0m

0xc0000409 STATUS_STACK_BUFFER_OVERRUN –> RtlFailFast –> abort() –> std::terminate() –> exception

Deleted User 调整了一下本目录下的所有文件夹权限,还是报错。我没什么解决思路,发一下.system load的error log好了- -

hs-err-pid1608.txt
43kB

std::filesystem::is_regular_file(p.status()) && p.path().filename().string().substr(0, 1) != “.”
std::system_error at WideCharToMultiByte

感谢你的反馈。
此问题是由于在编码不兼容的Windows操作系统上加载文件(如英文版Windows加载中文文件名的文件),文件名编码没有被正确处理导致的。
此问题会影响牌堆以及Lua脚本的加载。

临时解决方案:
将牌堆/Lua重命名为英文文件名后重试。(文件内容无需更改)

已在20210808版本中修复,但由于技术原因,此修复只修复了这种情况下牌堆的加载,在编码不兼容时Lua脚本仍然不能加载导致程序崩溃,此问题会在后期优化。都修了。

说点什么吧...