2015년 3월 19일 목요일

Bugzilla 사용 중 에러 발생 시 -> DBD::mysql::db do failed: Incorrect key file for table './bugzilla/bugs_fulltext.MYI';

bugzilla를 아직까지 사용하는 사람들이 별로 없겠지만
간단히 local환경에서 bug/task/todo tracking system으로 사용하기는 편하다.

사용 중 아래와 같이 에러가 발생 할 때 처리방법에 대해서 적어 봄.

Software error:

DBD::mysql::db do failed: Incorrect key file for table './bugzilla/bugs_fulltext.MYI'; try to repair it [for Statement "UPDATE bugs_fulltext SET comments = ?, comments_noprivate = ? WHERE bug_id = ?"] at Bugzilla/Bug.pm line 1095
Bugzilla::Bug::_sync_fulltext('Bugzilla::Bug=HASH(0x43d7d98)', 'update_short_desc', undef, 'update_comments', 'ARRAY(0x47d6840)') called at Bugzilla/Bug.pm line 1027
Bugzilla::Bug::update('Bugzilla::Bug=HASH(0x43d7d98)') called at /var/www/bugzilla/process_bug.cgi line 366
For help, please send mail to the webmaster (webmaster@localhost), giving this error message and the time and date of the error.

참고로 위 에러는 답글이나 attachment 올릴 때 발생한다.

해결 방법은 mysql table을 복구하는 것임.
출처는 ==> http://www.patinaed.org/sdk/2009/07/repair-a-table-in-mysql.html

죄송하지만 나중에 페이지가 삭제될 것에 대비해 펌했음.

Repair a table in mysql

| No Comments | No TrackBacks
Under certain conditions a tables might become corrupt.  During a reboot to a linux box serving bugzilla caused one of the bugzilla tables became corrupt.  Attempting further commits to the bugzilla database resulted in the error message:

DBD::mysql::db do failed: Incorrect key file for table './bugs/bugs_fulltext.MYI'; try to repair it

So, I logged in to mysql then:
mysql> use bugs
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> REPAIR TABLE bugs_fulltext;
+--------------------+--------+----------+----------+
| Table              | Op     | Msg_type | Msg_text |
+--------------------+--------+----------+----------+
| bugs.bugs_fulltext | repair | status   | OK       |
+--------------------+--------+----------+----------+


실제로 해보면
현재 최신버전에서는 table 명이 bugzilla 로 사용되고 있어 참고해서 선택해야 한다.


$ mysql -u root -p

생략...

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bugzilla           |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.01 sec)

mysql> use bugzilla
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> REPAIR TABLE bugs_fulltext;
+------------------------+--------+----------+----------+
| Table                  | Op     | Msg_type | Msg_text |
+------------------------+--------+----------+----------+
| bugzilla.bugs_fulltext | repair | status   | OK       |
+------------------------+--------+----------+----------+
1 row in set (0.03 sec)

mysql> exit;
Bye


2015년 3월 15일 일요일

Caused by: org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]

cygwin X 등을 사용하여 SSH X11 forwarding을 하다
갑자기 shell에서 GUI application들이 아래와 같은 에러 메세지를 보여주고
실행이 안될 경우 X server가 죽었는지 확인 필요.

이것 때문에 GTK 확인하고 java 버전확인하고 삽질하다
아래 답변 보고 Cygwin X 서버 확인하여 보니 X server가 죽어 있었음.


java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at QBootLoader.main(SourceFile:99)
Caused by: org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]