Sunday, March 30, 2014

GFS2 unformat helper tool

سلام

در دنیای کار با اطلاعات حجیم شاید بدترین خبری که میتواند به مدیر آی.تی برسد فرمت (سهوی یا عمدی) مجدد دیسک حاوی اطلاعات حیاتی است. به هر حال این خبر نسبتا وحشتناک در واپسین روزهای سال ۱۳۹۲ به ما رسید.

ما نیز تمامی توان فنی و تجارب چندین ساله در فضای متن‌باز خود را بسیج کردیم و در نهایت موفق شدیم، به یاری خدا و خوش اقبالیهایی که نصیب ما شد، اطلاعات با حجم نزدیک به ۲ ترابایت را، بدون از دست دادن حتی یک بیت، بازیابی کنیم.

در این مسیر فعالیت فنی قابل توجهی صورت گرفت. قابل ذکر است فایل سیستم مورد بحث از نوع GFS2 بود که اصطلاحا یک فایل سیستم کلاستری میباشد.

میتوانید شرح کامل ماجرا را از اینجا دنبال کنید. همچنین قادر خواهید بود کدی را که بدین منظور توسعه یافته است را مشاهده و در صورت نیاز استفاده نمایید.

موفق باشید

Wednesday, March 12, 2014

C++, Occurance of "__cxa_call_unexpected" in back-trace

قابلیتی در ++C با نام Exception Definition این امکان را برای برنامه‌نویس فراهم میکند تا انواع Exceptionهایی را که تابع میتواند Throw کند برای کامپایلر مشخص کند.
نحوه استفاده از این قابلیت به این شرح است:
int x() throw (ex1, ex2, ...)

در این وضعیت چنانچه تابع Exceptionی غیر از موارد مشخص شده را رها کند، سیستم یک Exception از جنس std::unexpected را ایجاد میکند. که این موضوع در BackTrace با عبارت __cxa_call_unexpected قابل تشخیص است.

راه حل این موضوع درج Exception تعریف نشده در بلاک تعریف و یا حذف کامل قسمت Definition میباشد.