Senin, 27 Desember 2010

Value too large for defined data type

Hari ini ada seorang teman yang bertanya mengenai sebuah error yang didapatkannya saat me-running ns-2 dengan data untuk 5000 buah user.
Saat mencoba running, ternyata muncul sebuah error message "Value too large for defined data type"
Apa maksudnyaaa???

NS akan membangkitkan paket2 dan mengirimkannya sesuai dengan skenario yang telah dibuat. Saat merunning simulasi, bukan hanya paket yang dikirimkan, tetapi banyak macam hal yang dilakukan si ns, yaitu mencatat hasil simulasi pada out.tr
naaah logikanya, kalo kebanyakan data dan melebihi dari yang ditetapkan, maka simulasi tidak akan berjalan. Nah muncullah pesan error kayak gitu.
Pesan error kayak gitu disebabkan karena data yang akan diisikan ke dalam file tr teerrlaaluuu besar dan penggunaan memori (physical dan logical/swap) melebihi dari batas memori yang dimiliki, makanya eror daaah

jadi kalo maw simulasi, datanya jgn banyak2. bisa diakali dgn membagi dua data, lalu hasil yang diperoleh dikali dua lagi (buseeet,rekayasa bgt dah), dan sebagainyaa.

tapi sebenernya ada solusi untuk mslh di atas (tp belum dicobain, hehee). eror ini bukan hanya buat ns, tapi juga segala jenis file yg bersifat kompresi (jar, rar, gzip, dll). berikut langkah2nya (bede') :

1. jalankan apt-get source uswsusp pada terminal / console
2. (untuk yang pake ubuntu Jaunty, menggunakan direktori sebelah. untuk linux lain, direktorinya mungkin berbeda) cd uswsusp-0.6~cvs20070618/suspend-cvs20070618
3. buka Makefile dengan editor  gedit/nano/apapun dan buka baris ke 19, dimulai dgn CC_FLAGS. Tambahkan  -D_FILE_OFFSET_BITS=64 diakhir baris (jgn lupa kasih spasi),sehingga bentuknya kaya gini:
Kode:
CC_FLAGS=-I/usr/local/include -DS2RAM $(CFLAGS) -D_FILE_OFFSET_BITS=64
4. Save dan tutup editornya
5.Jalankan sudo apt-get build-dep uswsusp untuk mendownload semua dependensi yg dibutuhkan. (kalo ga punya build-essential, install dulu aja)
6. make
7. ./swap-offset (jgn lupa the ./ - kita membutuhkannya untuk menjalankan file yang baru, bukan yang berasal dari sistem  PATH yang lama).


Semoga berhassiiiiil :D :D