
Ubuntu日本語フォーラム

ログインしていません。
OpenOffice Base + MyODBC を使っておりますが、
Gutsy→HardyにUpgradeしてからテーブル表示や
クエリーを表示しようとすると、突然落ちてしまい、
次に起動するとドキュメントの回復ウインドウが表示
されるようになってしまいました。
なにか対策はないでしょうか。できればCDからのクリーン
インストールとかはなるべく避けたいです。
発生までの手順:
1) oobaseを立ち上げる
2) 既存のデータベースを開く (MyODBCでMySQLに接続する設定済み)
3) データベースのテーブルアイコンをクリックして、MySQLの
パスワードを入力。
4) デーブル名、或はクエリをダブルクリックすると、落ちる。
状況:
・Gutsy AMD64版のAlternative CDで1週間前ぐらいにインストール
・昨日HardyにオンラインUpgrade (Upgrade中は特に問題は出ていません)
・Gutsy (OOo 2.3) では特に問題はなかった。HardyではOOo 2.4になっている。
・libmyodbcは再インストールしてみましたが、変わりませんでした。
・コマンドラインでMySQLサーバにログインしてクエリ等を実行しても
特に問題が見られない。
・どんな単純なテーブルを表示しようとしてもダメ。例えば以下のような
テーブルを作っています。
mysql> desc language ;
+----------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------------------+------+-----+---------+----------------+
| id | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| language | smallint(5) unsigned | YES | | NULL | |
+----------+----------------------+------+-----+---------+----------------+
2 rows in set (0.45 sec)
・落ちる瞬間をgdbでトレースしてみると、以下のようにodbc関連で
Segmentation Faultしているようです。
(gdb) where
#0 0x00002b680b01fc76 in poll () from /lib/libc.so.6
#1 0x00002b680f231366 in ?? () from /usr/lib/libglib-2.0.so.0
#2 0x00002b680f2319af in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3 0x00002b68128dd4a7 in ?? () from /usr/lib/openoffice/program/libvclplug_gtk680lx.so
#4 0x00002b680684c30e in Application::Yield () from /usr/lib/openoffice/program/libvcl680lx.so
#5 0x00002b680684c3e7 in Application::Execute ()
from /usr/lib/openoffice/program/libvcl680lx.so
#6 0x00000000004357c7 in desktop::Desktop::Main ()
#7 0x00002b68068518e6 in ?? () from /usr/lib/openoffice/program/libvcl680lx.so
#8 0x00002b68068519d5 in SVMain () from /usr/lib/openoffice/program/libvcl680lx.so
#9 0x00000000004267fd in main ()
(gdb) c
Continuing.
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x2b6812838900 (LWP 20803)]
0x00002aaab54da11a in connectivity::odbc::ODatabaseMetaDataResultSet::getInt ()
from /usr/lib/openoffice/program/libodbcbase2.so
(gdb) where
#0 0x00002aaab54da11a in connectivity::odbc::ODatabaseMetaDataResultSet::getInt ()
from /usr/lib/openoffice/program/libodbcbase2.so
#1 0x00002aaab35632f6 in ?? () from /usr/lib/openoffice/program/libdbtools680lx.so
#2 0x00002aaab3564cf0 in connectivity::OTableHelper::refreshColumns ()
from /usr/lib/openoffice/program/libdbtools680lx.so
#3 0x00002aaab3531053 in connectivity::sdbcx::OTable::getColumns ()
from /usr/lib/openoffice/program/libdbtools680lx.so
#4 0x00002aaab30d3511 in ?? () from /usr/lib/openoffice/program/libdba680lx.so
#5 0x00002aaab30d27f3 in ?? () from /usr/lib/openoffice/program/libdba680lx.so
#6 0x00002aaab35b982c in connectivity::OSQLParseTreeIterator::appendColumns ()
from /usr/lib/openoffice/program/libdbtools680lx.so
#7 0x00002aaab35ba956 in connectivity::OSQLParseTreeIterator::setSelectColumnName ()
from /usr/lib/openoffice/program/libdbtools680lx.so
#8 0x00002aaab35be5aa in connectivity::OSQLParseTreeIterator::traverseSelectColumnNames ()
from /usr/lib/openoffice/program/libdbtools680lx.so
#9 0x00002aaab35be974 in connectivity::OSQLParseTreeIterator::impl_traverse ()
from /usr/lib/openoffice/program/libdbtools680lx.so
#10 0x00002aaab317e3c3 in ?? () from /usr/lib/openoffice/program/libdba680lx.so
#11 0x00002aaab3183c3b in ?? () from /usr/lib/openoffice/program/libdba680lx.so
#12 0x00002aaab31846a7 in ?? () from /usr/lib/openoffice/program/libdba680lx.so
#13 0x00002aaab35a7602 in ?? () from /usr/lib/openoffice/program/libdbtools680lx.so
#14 0x00002aaab35a87cc in dbtools::StatementComposer::getQuery ()
from /usr/lib/openoffice/program/libdbtools680lx.so
#15 0x00002aaab3552d3e in dbtools::getComposedRowSetStatement ()
from /usr/lib/openoffice/program/libdbtools680lx.so
#16 0x00002aaab355313e in dbtools::getCurrentSettingsComposer ()
from /usr/lib/openoffice/program/libdbtools680lx.so
#17 0x00002aaabc545291 in ?? () from /usr/lib/openoffice/program/libfrm680lx.so
#18 0x00002aaabc549779 in ?? () from /usr/lib/openoffice/program/libfrm680lx.so
#19 0x00002aaabc49b1f5 in ?? () from /usr/lib/openoffice/program/libfrm680lx.so
---Type <return> to continue, or q <return> to quit---
#20 0x00002aaabc49b28d in ?? () from /usr/lib/openoffice/program/libfrm680lx.so
#21 0x00002aaabc49c5e8 in ?? () from /usr/lib/openoffice/program/libfrm680lx.so
#22 0x00002aaabc49cfbc in ?? () from /usr/lib/openoffice/program/libfrm680lx.so
#23 0x00002aaab3e672c9 in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#24 0x00002aaab3e9284d in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#25 0x00002aaab3e9362f in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#26 0x00002aaab3e9545c in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#27 0x00002aaab3e960a9 in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#28 0x00002aaab3e2c1db in dbaui::OGenericUnoController::initialize ()
from /usr/lib/openoffice/program/libdbu680lx.so
#29 0x00002aaab3e3d82e in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#30 0x00002aaaab526b5e in ?? () from /usr/lib/openoffice/program/libfwk680lx.so
#31 0x00002aaaab52892a in ?? () from /usr/lib/openoffice/program/libfwk680lx.so
#32 0x00002aaaab5290a8 in ?? () from /usr/lib/openoffice/program/libfwk680lx.so
#33 0x00002aaaab401435 in ?? () from /usr/lib/openoffice/program/libfwk680lx.so
#34 0x00002aaab3d6b2e2 in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#35 0x00002aaab3d6bc6c in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#36 0x00002aaab3d6aa89 in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#37 0x00002aaab3ee49f5 in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#38 0x00002aaab3ee56cf in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#39 0x00002aaab3ef8c3f in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#40 0x00002aaab3f11674 in ?? () from /usr/lib/openoffice/program/libdbu680lx.so
#41 0x00002b68073965e0 in ?? () from /usr/lib/openoffice/program/libsvt680lx.so
#42 0x00002b6806a25a3c in ?? () from /usr/lib/openoffice/program/libvcl680lx.so
#43 0x00002b6806a26b65 in ?? () from /usr/lib/openoffice/program/libvcl680lx.so
#44 0x00002b681290141e in ?? () from /usr/lib/openoffice/program/libvclplug_gtk680lx.so
#45 0x00002b6812c7787f in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#46 0x00002b680edbabcf in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#47 0x00002b680edce6bc in ?? () from /usr/lib/libgobject-2.0.so.0
#48 0x00002b680edcfde6 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#49 0x00002b680edd0483 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#50 0x00002b6812d7ee55 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#51 0x00002b6812c70b92 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#52 0x00002b6812c71b35 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#53 0x00002b680e28758c in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#54 0x00002b680f22e262 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#55 0x00002b680f231516 in ?? () from /usr/lib/libglib-2.0.so.0
#56 0x00002b680f2319af in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#57 0x00002b68128dd439 in ?? () from /usr/lib/openoffice/program/libvclplug_gtk680lx.so
#58 0x00002b680684c30e in Application::Yield () from /usr/lib/openoffice/program/libvcl680lx.so
#59 0x00002b680684c3e7 in Application::Execute ()
from /usr/lib/openoffice/program/libvcl680lx.so
#60 0x00000000004357c7 in desktop::Desktop::Main ()
#61 0x00002b68068518e6 in ?? () from /usr/lib/openoffice/program/libvcl680lx.so
#62 0x00002b68068519d5 in SVMain () from /usr/lib/openoffice/program/libvcl680lx.so
#63 0x00000000004267fd in main ()
(gdb)
オフライン
MyODBC ということは MySQL をお使いなんですね。
それ以前に Ubuntu 同梱の OOo Base の SQLエンジンにバグがあるようなんです。同梱版で SQL を発行したら、OOo Base が固まるという現象が生じています。
仕方がないので、本家の OOo をインストールして使っています。本家 OOo の方が安定して動いています。
それと 8.04 になってから、各種ライブラリがバージョンアップしてますので、MyODBC を再ビルドした方がいいかもしれません。
最後の編集者: avidya (2008-04-30 22:23:28)
ご回答ありがとうございます。再ビルドですか。
不慣れな作業ですが挑戦してみます。
ちなみに、結局クリーンインストールしてみましたが、現象は変わりませんでした。
今はとりあえずJDBCに切り替えてやってます。JDBCは動作が鈍いですが…。
オフライン
MyODBCを再ビルドしてみましたが、変わりませんでした。
本家のtarballを持ってきてビルドしたほうがいいのかも
知れませんが。
% sudo apt-get install libmysqlclient15-dev
% sudo apt-get install unixodbc-dev
% sudo apt-get install build-essential
% sudo apt-get source libmyodbc
% cd myodbc-3.51.15r409
% sudo dpkg-buildpackage -b -uc
% sudo dpkg -i libmyodbc_3.51.15r409-2_amd64.deb
試しにoobaseも同じように挑戦しましたが、壊れたパッケージができて
ビルドがまともにできませんでした。断念。こわれてないパッケージ
を入れてみると なぜか brOffice というロゴに変わって立ち上がり
ましたが、問題は解決しませんでした。
本家OOoの方はx86_64のdebパッケージが無いようですね。
オフライン
解決したっぽいです。これが一番手っ取り早かったようです。
% wget ttp://download.softagency.net/MySQL/Downloads/MyODBC3/mysql-connector-odbc-3.51.19-linux-x86-64bit.tar.gz -P /tmp
# URLが省略表示されるのでttp:で書きました。正しくはhttp:です。
% cd /usr/local
% sudo tar xvf /tmp/mysql-connector-odbc-3.51.19-linux-x86-64bit.tar.gz
mysql-connector-odbc-3.51.19-linux-x86-64bit というディレクトリができるので、
% sudo ODBCConfig
のDriverタブでMyODBCを選択してConfigure...をクリック。
Driver64の欄:
/usr/local/mysql-connector-odbc-3.51.19-linux-x86-64bit/lib/libmyodbc3-3.51.19.so
Setup64の欄:
/usr/local/mysql-connector-odbc-3.51.19-linux-x86-64bit/lib/libmyodbc3S-3.51.19.so
これでoobaseを立ち上げてmysqlにログイン後、テーブルやクエリが普通に表示
されました。
どうもありがとうございました。
最後の編集者: NoriSen (2008-05-02 05:53:29)
オフライン