📦 mhrv-rs v1.9.8 منتشر شد
• Fix v1.9.7 Android: کرش روی tap Disconnect (#666 از @ilok67 با root cause + fix کامل):
• Fix v1.9.7 UI: دکمهٔ Test Relay در حالت
> Test Relay is wired only for apps_script mode. In full mode the data plane is the tunnel-node — to verify it end-to-end, start the proxy and load https://whatismyipaddress.com in your browser via 127.0.0.1:8085. The IP shown should be your tunnel-node's VPS IP.
- Tune adaptive batch coalesce (PR #674 از @yyoyoian-pixel): از 40 ms → 10 ms برای client coalesce step و tunnel-node straggler settle step. tunnel-node settle max از 500 ms → 1000 ms. منطق asymmetric: وقتی هیچ op دیگری نیست، fast-fire (10 ms کافی برای catch کردن opهایی که در همان event-loop tick میرسن مثل ۶ موازی parallel browser connection)؛ ولی وقتی هر دو طرف data دارن (uploads، page load بستی)، adaptive reset همچنان batch میکنه تا 1 s cap. در short: «وقتی چیزی برای انتظار نیست منتظر نباش، وقتی هست با تمام توان batch کن.» سازگار به عقب: کاربران با
• تست: ۱۷۹ lib + ۳۳ tunnel-node test همه pass.
برای دانلود فایلها (Android، Windows، macOS، Linux و ...) به کانال فایلها مراجعه کنید:
👉 v1.9.8 — همه فایلها + SHA-256
لینک کانال:
https://t.me/mhrv_rs
و یا: https://t.me/+R1OyoHX2boA1ZDgx
#v198
• Fix v1.9.7 Android: کرش روی tap Disconnect (#666 از @ilok67 با root cause + fix کامل):
MainActivity.onStop بعد از startService(ACTION_STOP) بلافاصله stopService() رو هم میزد. ACTION_STOP داخل MhrvVpnService یک thread پسزمینه به نام mhrv-teardown میسازه که teardown() (بستن tun2proxy، fd TUN، runtime) رو اجرا میکنه و در پایانش stopSelf() رو فرامیخونه. ولی stopService() بلافاصله onDestroy() رو روی همان service trigger میکرد — دو thread همزمان دارن از lifecycle میگذرن، و OS process service رو میکشه قبل از اینکه teardown تمام بشه. crash بعد از تب Disconnect، در حدود ۹۹٪ از تستها قابل reproduce. حالا stopService() حذف شده — ACTION_STOP تنها کافی است (هم برای service زنده هم برای حالت زامبی). idempotency guard tornDown AtomicBoolean قبلاً موجود بود ولی محافظت OS-level lifecycle race رو نمیکرد. تشکر از @ilok67 برای triage عالی.• Fix v1.9.7 UI: دکمهٔ Test Relay در حالت
full (و direct) "test result: fail" قرمز نشون میداد (#665 از @cmptrnb). mhrv-rs test فقط برای حالت apps_script سیمکشی شده — در full mode عمداً refuse میکنه چون probe مستقیم Apps Script در حالی که data plane از tunnel-node رد میشه گمراهکننده است. ولی پیام refuse توسط UI بهعنوان test failure ترجمه میشد + کاربر فکر میکرد proxy خراب است. حالا UI mode رو قبل از اجرای test چک میکنه + برای حالتهای نامناسب پیام explainer میده بهجای fail قرمز:> Test Relay is wired only for apps_script mode. In full mode the data plane is the tunnel-node — to verify it end-to-end, start the proxy and load https://whatismyipaddress.com in your browser via 127.0.0.1:8085. The IP shown should be your tunnel-node's VPS IP.
- Tune adaptive batch coalesce (PR #674 از @yyoyoian-pixel): از 40 ms → 10 ms برای client coalesce step و tunnel-node straggler settle step. tunnel-node settle max از 500 ms → 1000 ms. منطق asymmetric: وقتی هیچ op دیگری نیست، fast-fire (10 ms کافی برای catch کردن opهایی که در همان event-loop tick میرسن مثل ۶ موازی parallel browser connection)؛ ولی وقتی هر دو طرف data دارن (uploads، page load بستی)، adaptive reset همچنان batch میکنه تا 1 s cap. در short: «وقتی چیزی برای انتظار نیست منتظر نباش، وقتی هست با تمام توان batch کن.» سازگار به عقب: کاربران با
coalesce_step_ms: 40 در config.json رفتار قدیمی رو نگه میدارن.• تست: ۱۷۹ lib + ۳۳ tunnel-node test همه pass.
برای دانلود فایلها (Android، Windows، macOS، Linux و ...) به کانال فایلها مراجعه کنید:
👉 v1.9.8 — همه فایلها + SHA-256
لینک کانال:
https://t.me/mhrv_rs
و یا: https://t.me/+R1OyoHX2boA1ZDgx
#v198
GitHub
App crashes when tapping Disconnect button · Issue #666 · therealaleph/MasterHttpRelayVPN-RUST
When the user taps the Disconnect button, the app crashes. This happens because MainActivity.onStop callback sends ACTION_STOP via startService() and then immediately calls stopService() on the sam...
❤18