Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

اکسپایر شدن اکانت با حجم و زمان باقیمانده #850

Open
automa-gen opened this issue Mar 5, 2024 · 16 comments
Labels
Bug Something isn't working

Comments

@automa-gen
Copy link

درود

اخیرا بعد از آپدیت به 0.4.3 چند مورد پیش اومده که اکانت کاربر اکسپایر میشه ولی هم حجم باقیمانده داره هم زمان. یک نمونه رو ضمیمه کردم.
Screenshot_20240305-122237

@automa-gen automa-gen added the Bug Something isn't working label Mar 5, 2024
@SaintShit
Copy link
Contributor

@diditra سلام
به نسخه ۰.۴.۹ ارتقا بدین بررسی کنید مشکل هنوز وجود داره؟

@WebiloMain
Copy link

@diditra سلام به نسخه ۰.۴.۹ ارتقا بدین بررسی کنید مشکل هنوز وجود داره؟

درود ،
شب و روز شما بخیر
آرزوی سلامتی و موفقیت برای شما و تیمتون
بنده به یک باگ هماهنند باگ موجود در تیکت برخوردم
نسخه دولوپر هم نیست و v0.4.9 هستم،
دراین باگ زمانی که کاربر توسط حجم یا انقضای اشتراکش به پایان میرسه و مجدد توسط بنده و یا ربات تمدید میشه،
توی برنامه همچنان ارور EOF میده اما در لینک ساب و در پنل مرزبان اون رو تمدید شده نشون میده
درواقع زمانی که تمدید میشه لینک ساب کاربر را کپی کنی و در مرورگر اجرا کنی در خروجی میگه اشتراک فعال است و اگر همون ساب رو در v2ray یا هرکلاینتی وارد کنی و متصل بشی ارور eof میخوره.
راه حل این باگ برای بنده این بود که اشتراک کاربر رو یک بار rekove کنم و مجدد براش ارسال کنم که در اوایل میشکلی نداشت ولی جدیدا خیلی دردسر شده.
با تشکر از شما و وقتی که گذاشتید برای خوندن این تیکت.

@vahidyeganeh1373
Copy link

سلام
منم چند بار این اتفاق افتاد که امروز موفق شدم ازش عکس بگیرم توی اخرین ورژن هم هست 0.4.9
با توجه به حرف دوستمون این اکانت رو Revoke هم نکردم
Untitlssed

@mohandex
Copy link

با شلام خدمت همه عزیزان
@gozarman @govfvck
دوستان عزیز مرزبان چقدر زمان میبره که این باگ رفع بشه؟
الان بیشتر از ۱۵ روز هست که این باگ رو مشاهده کردیم
شرح باگ: کاربر بعد تمدید اکانتش active هست اما ارور eof میگیره و نیاز یک بار اکانتش disable بشه و باز دوباره enable بشه تا باگ رفع بشه
خیلی باگ ازار دهنده ای شده متاشفانه

@automa-gen
Copy link
Author

درود

این مشکل همچنان پابرجاست حتی در ورژن 0.6.0. به نظر میرسه به این ربط داشته باشه که بات چند ریکوئست مختلف مرزبان (که تداخلی با هم ندارن) رو همزمان اجرا میکنه. ما توی ddbot بین این ریکوئستها sleep یک ثانیه ای گذاشتیم که یه کم شرایط رو بهتر کرد ولی همچنان اتفاق میفته. یوزر ساخته یا تمدید میشه، حجم و زمان هم درست ست میشه، مصرف قبلیش هم درست ریست میشه، وضعیتش روی پنل مرزبان هم active هست ولی کانفیگهاش eof میدن. اکثر موارد با disable و enable کردن اکانت مشکل حل میشه. به نظر میرسه یک race condition یک جایی هست.

@ImMohammad20000
Copy link
Collaborator

یوزر فقط لیمیت میشه یا اکسپایر هم میشه؟

@ImMohammad20000
Copy link
Collaborator

با شلام خدمت همه عزیزان
@gozarman @govfvck
دوستان عزیز مرزبان چقدر زمان میبره که این باگ رفع بشه؟
الان بیشتر از ۱۵ روز هست که این باگ رو مشاهده کردیم
شرح باگ: کاربر بعد تمدید اکانتش active هست اما ارور eof میگیره و نیاز یک بار اکانتش disable بشه و باز دوباره enable بشه تا باگ رفع بشه
خیلی باگ ازار دهنده ای شده متاشفانه

بجز مرزبان چیز دیگه ای هم نصب دارید که با پنل کار کنه ربات مثلا؟

@erfjab
Copy link
Contributor

erfjab commented Jul 30, 2024

درود

این مشکل همچنان پابرجاست حتی در ورژن 0.6.0. به نظر میرسه به این ربط داشته باشه که بات چند ریکوئست مختلف مرزبان (که تداخلی با هم ندارن) رو همزمان اجرا میکنه. ما توی ddbot بین این ریکوئستها sleep یک ثانیه ای گذاشتیم که یه کم شرایط رو بهتر کرد ولی همچنان اتفاق میفته. یوزر ساخته یا تمدید میشه، حجم و زمان هم درست ست میشه، مصرف قبلیش هم درست ریست میشه، وضعیتش روی پنل مرزبان هم active هست ولی کانفیگهاش eof میدن. اکثر موارد با disable و enable کردن اکانت مشکل حل میشه. به نظر میرسه یک race condition یک جایی هست.

برای موضوع expired شدن وضعیت کاربر، بهتره از طریق api به اطلاعات کاربر ریکویست بزنید. نتیجه رو ارسال کنید.

@vahidyeganeh1373
Copy link

یوزر فقط لیمیت میشه یا اکسپایر هم میشه؟

فقط اکسپایر میشه
بعنوان مثال نوشته ۱۹ روز دیگه زمان داره ولی ارور eof میده
فقط نیازه روی یوزر کلیک کنیم و بدون تغییر چیزی، Edit رو بزنیم اوکی میشه
البته اینم بگم فقط بعضی از کاربرها زمانی که تازه تمدید میکنن تا ۲۴ بعدش این اتفاق میافته

@automa-gen
Copy link
Author

درود

این مشکل همچنان پابرجاست حتی در ورژن 0.6.0. به نظر میرسه به این ربط داشته باشه که بات چند ریکوئست مختلف مرزبان (که تداخلی با هم ندارن) رو همزمان اجرا میکنه. ما توی ddbot بین این ریکوئستها sleep یک ثانیه ای گذاشتیم که یه کم شرایط رو بهتر کرد ولی همچنان اتفاق میفته. یوزر ساخته یا تمدید میشه، حجم و زمان هم درست ست میشه، مصرف قبلیش هم درست ریست میشه، وضعیتش روی پنل مرزبان هم active هست ولی کانفیگهاش eof میدن. اکثر موارد با disable و enable کردن اکانت مشکل حل میشه. به نظر میرسه یک race condition یک جایی هست.

خب این مشکل رو با استفاده از صفحه OpenAPI مرزبان بیشتر تست کردیم و مشخص شد باگ کجاست. البته با مشکلاتی که چند ماه پیش گزارش شده متفاوت هست و تو نسخه 0.5 یا 0.6 به وجود اومده. اگر یه ریکوئست POST به این شکل بزنم برای ایجاد یوزر جدید:

{ "username": "user1234", "proxies": { "vmess": {}, "vless": {} }, "inbounds": { "vmess": [ "VMess Websocket" ], "vless": [ "Legacy", "de+usd" ] }, "expire": 0, "data_limit": 0, "status": "active", "note": "Test1234" }

کانفیگهای ویلس همه EOF میزنن ولی ویمسها وصل میشن.
اما اگر ریکوئست POST برای ایجاد یوزر رو اینجوری بزنم که همه اینباندها انتخاب بشن:

{ "username": "user1234", "proxies": { "vmess": {}, "vless": {} }, "inbounds": { "vmess": [ ], "vless": [ ] }, "expire": 0, "data_limit": 0, "status": "active", "note": "Test1234" }

این بار دقیقا همون کانفیگها میان توی ساب ولی همه کار میکنن و پینگ میدن.

@mohandex
Copy link

با شلام خدمت همه عزیزان
@gozarman @govfvck
دوستان عزیز مرزبان چقدر زمان میبره که این باگ رفع بشه؟
الان بیشتر از ۱۵ روز هست که این باگ رو مشاهده کردیم
شرح باگ: کاربر بعد تمدید اکانتش active هست اما ارور eof میگیره و نیاز یک بار اکانتش disable بشه و باز دوباره enable بشه تا باگ رفع بشه
خیلی باگ ازار دهنده ای شده متاشفانه

بجز مرزبان چیز دیگه ای هم نصب دارید که با پنل کار کنه ربات مثلا؟

بله ربات هست

@mohandex
Copy link

درود
این مشکل همچنان پابرجاست حتی در ورژن 0.6.0. به نظر میرسه به این ربط داشته باشه که بات چند ریکوئست مختلف مرزبان (که تداخلی با هم ندارن) رو همزمان اجرا میکنه. ما توی ddbot بین این ریکوئستها sleep یک ثانیه ای گذاشتیم که یه کم شرایط رو بهتر کرد ولی همچنان اتفاق میفته. یوزر ساخته یا تمدید میشه، حجم و زمان هم درست ست میشه، مصرف قبلیش هم درست ریست میشه، وضعیتش روی پنل مرزبان هم active هست ولی کانفیگهاش eof میدن. اکثر موارد با disable و enable کردن اکانت مشکل حل میشه. به نظر میرسه یک race condition یک جایی هست.

خب این مشکل رو با استفاده از صفحه OpenAPI مرزبان بیشتر تست کردیم و مشخص شد باگ کجاست. البته با مشکلاتی که چند ماه پیش گزارش شده متفاوت هست و تو نسخه 0.5 یا 0.6 به وجود اومده. اگر یه ریکوئست POST به این شکل بزنم برای ایجاد یوزر جدید:

{ "username": "user1234", "proxies": { "vmess": {}, "vless": {} }, "inbounds": { "vmess": [ "VMess Websocket" ], "vless": [ "Legacy", "de+usd" ] }, "expire": 0, "data_limit": 0, "status": "active", "note": "Test1234" }

کانفیگهای ویلس همه EOF میزنن ولی ویمسها وصل میشن. اما اگر ریکوئست POST برای ایجاد یوزر رو اینجوری بزنم که همه اینباندها انتخاب بشن:

{ "username": "user1234", "proxies": { "vmess": {}, "vless": {} }, "inbounds": { "vmess": [ ], "vless": [ ] }, "expire": 0, "data_limit": 0, "status": "active", "note": "Test1234" }

این بار دقیقا همون کانفیگها میان توی ساب ولی همه کار میکنن و پینگ میدن.

بله من هم تست کردم ظاهرا مشکل از همین قظیه هست امیدوارم زودتر رفع بشه

@automa-gen
Copy link
Author

automa-gen commented Aug 3, 2024

درود
این مشکل همچنان پابرجاست حتی در ورژن 0.6.0. به نظر میرسه به این ربط داشته باشه که بات چند ریکوئست مختلف مرزبان (که تداخلی با هم ندارن) رو همزمان اجرا میکنه. ما توی ddbot بین این ریکوئستها sleep یک ثانیه ای گذاشتیم که یه کم شرایط رو بهتر کرد ولی همچنان اتفاق میفته. یوزر ساخته یا تمدید میشه، حجم و زمان هم درست ست میشه، مصرف قبلیش هم درست ریست میشه، وضعیتش روی پنل مرزبان هم active هست ولی کانفیگهاش eof میدن. اکثر موارد با disable و enable کردن اکانت مشکل حل میشه. به نظر میرسه یک race condition یک جایی هست.

خب این مشکل رو با استفاده از صفحه OpenAPI مرزبان بیشتر تست کردیم و مشخص شد باگ کجاست. البته با مشکلاتی که چند ماه پیش گزارش شده متفاوت هست و تو نسخه 0.5 یا 0.6 به وجود اومده. اگر یه ریکوئست POST به این شکل بزنم برای ایجاد یوزر جدید:

{ "username": "user1234", "proxies": { "vmess": {}, "vless": {} }, "inbounds": { "vmess": [ "VMess Websocket" ], "vless": [ "Legacy", "de+usd" ] }, "expire": 0, "data_limit": 0, "status": "active", "note": "Test1234" }

کانفیگهای ویلس همه EOF میزنن ولی ویمسها وصل میشن. اما اگر ریکوئست POST برای ایجاد یوزر رو اینجوری بزنم که همه اینباندها انتخاب بشن:

{ "username": "user1234", "proxies": { "vmess": {}, "vless": {} }, "inbounds": { "vmess": [ ], "vless": [ ] }, "expire": 0, "data_limit": 0, "status": "active", "note": "Test1234" }

این بار دقیقا همون کانفیگها میان توی ساب ولی همه کار میکنن و پینگ میدن.

این مورد خاص مشکلش پیدا شد. باگ از مرزبان نبود. مشکل اینجا بود که کاربر کانفیگ مربوط به اینباند رو زیر مجموعه اینباند دیگه قرار داده بود توی قسمت Host settings. بعد موقع ساخت یوزر اینباندی که کانفیگی نداشت ولی برای کانفیگهای دیگه لازم نبود رو انتخاب نمیکرد.

اما همچنان مشکلی که یوزر تمدید میکنه و تمدید هم میشه ولی کانفیگهاش eof میزنن باقیه. روی همه پنلها هم پیش نمیاد. وضعیت یوزر active هست و حجم و زمان هم درست ست شده. با توجه به اینکه این مورد فقط موقع استفاده از بات و فقط موقع تمدید پیش میاد ما اومدیم یه سری تست انجام دادیم. فاصله زمانی بین ریکوئستهای ریست کردن ترافیک و ریکوئست modify یوزر تاثیر داره. اگر سریع پشت سر هم زده بشن قطعا این این اتفاق میفته. ریکوئستها با موفقیت انجام میشن و مصرف یوزر ریست میشه و حجم و زمان جدید هم درست ست میشه. اما کانفیگهاش eof میدن. با یک بار enable و disable کردن دستی اکانت مشکل برطرف میشه.

@automa-gen
Copy link
Author

یه مورد دیگه تو نسخه 0.6.0

Screenshot_20240812-174452~2

Screenshot_20240812-174507

@erfjab
Copy link
Contributor

erfjab commented Aug 12, 2024

یه مورد دیگه تو نسخه 0.6.0

این اکانت چطوری ساخته شده؟ با api یا از طریق پنل؟
اگر از طریق api هست لطفا نحوه‌ی درخواست زدن تون رو برای ساخت کاربر ارسال کنید.

@automa-gen
Copy link
Author

یه مورد دیگه تو نسخه 0.6.0

این اکانت چطوری ساخته شده؟ با api یا از طریق پنل؟ اگر از طریق api هست لطفا نحوه‌ی درخواست زدن تون رو برای ساخت کاربر ارسال کنید.

خود اکانت قبلا از طریق بات ساخته شده ولی همونطوری که توی نوت میبینید آخرین اتفاقی که روش افتاده تمدید توسط بات بوده. برای تمدید ما api های زیر رو صدا میزنیم:

POST: /user/{username}/reset

بعدش یک ثانیه sleep. چون از ورژن 0.4.3 به بعد بدون sleep اکانت تمدید میشد ولی بعدش EOF میداد با وجود اینکه status اکتیو بود! یک ثانیه تاخیر رو که اضافه کردیم تقریبا دیگه پیش نیومد. اما هنوز هم هستن کسایی که مشکل دارن و این خودش یه مشکل دیگست. بعد از یک ثانیه تاخیر همچین ریکوئستی میزنه بات:

PUT: /user/{username}
payload:
{"status":"active","enabled":true,"note":"Renewed by 85997915 at 14-08-2024 20:36:08","expire":1724087167,"data_limit":10737418240}

بسته به پنل شاید یک در 100 یوزر تو حالت expired قرار میگیره حالا یا بعد از یه مدت یا دقیقا بعد از تمدید. گفتنش سخته چون یوزر همون لحظه اطلاع نمیده.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants