USVN Weird Error

Hari ini jadwal migrasi server repository ke server baru. Setelah test sana, test sini semua sepertinya sudah ok. Sampai akhirnya test untuk interface usvn, ternyata ada beberapa page yang gak bisa dibuka.

Page-page itu adalah group info sama project info. Kedua pages itu gak bisa aku buka, yang satu ngasih error kalo call to undefine function bla…bla…, yang satu silently forward requestku ke halaman sebelumnya.

Error yang direkam oleh httpd adalah PHP Notice:  Trying to get property of non-object in /var/www/html/usvn/controllers/ProjectadminController.php on line 80, referer: http://xxx.xxx.xxx.xxx/usvn/admin/project/ aneh banget (bagi aku), soalnya harusnya framework yang dipakai oleh usvn tidak boleh mengembalikan error ini.

Terlusur punya telurus, dari cek config.ini, .htaccess punya usvn, cek config subversion, review config httpd sampek cek source code dari usvn. Tidak ada yang aneh dari itu semua, sampai akhirnya datang wangsit untuk cek database usvn. Karena database yang aku pake bukan create baru, tapi hasil copy paste dari server lama.

Walhasil pada waktu aku check table muncul pesan Table upgrade required. Please do "REPAIR TABLE `xxx`" to fix it! untuk tabel usvn.usvn_groups dan usvn.usvn_projects.

Setelah menjalankan apa yang diperintahkan, usvn berjalan lagi dengan lancar. Belum tahu dengan detil kenapa unupgraded table bisa menyebabkan error seperti ini. Tapi aku sudah cukup puas dengan berjalannya usvn.

Beda encoding

File project aku untuk edit peninjauan punya bug, php complain kalau header tidak bisa di sent karena content sudah berubah. Pesan kesalahan menunjukkan bahwa yang merubah content ada pada file yang sama pada baris kesatu. Posisi kode untuk merubah header ada pada baris hampir bawah.

Berjam-jam aku coba untuk mencari letak di mana baris yang membuat content berubah. Dicoba cek pada baris pertama, tapi itu cuman mengandung baris:

<php

sampai dicoba untuk mencari pada file yang mungkin berhubungan, tapi hasilnya NOL besar. Aku hampir putus asa, dicoba untuk mempaste dari file yang beda tapi berjalan. Hasilnya masih sama, NOL besar.

OK, aku putus asa…. But wait, muncul ide untuk melihat encoding file. Pertimbangannya sih karena ada encoding file yang memberikan bytemark pada offset awal.

Dari ide ini aku buka file yang buggy dengan menggunakan psPad, sebagai pembading, file yang aku copy paste aku buka juga. Then, what the f**k. File yang buggy dinyatakan sama psPad menggunakan encoding UTF-8 sedang pembanding menggunakan Ansi.

Well, aku ganti encoding file manjadi Ansi kemudian di cek ulang… wkwkwkwk its work. What a f**king bug, aku cuman kelewatan dddddduuuuuiiiikkkkiiiiittttttt hasilnya berjam-jam aku kehilangan waktu hanya untuk trial and error.

Wuih, kayaknya aku harus memperhatikan lebih seksama dengan encoding file yang aku buat. Biar tidak terulang lagi, capek boooo…….