[Çözüldü] Firebird 3.0 kurulurken \\\"Segmentation fault (core dumped)\\\" hatası

Başlatan gnukarabatak, 01 Eylül 2016 - 17:04:41

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

gnukarabatak

Ubuntu 16.04.1 sunucu üzerine www.firebirdsql.org adresinden indirdiğim tar.gz uzantılı dosyayı sunucu üzerinde tar ile açarak ilgili klasörün içerisindeki install.sh dosyasını çalıştırıyorum.

gnukarabatak@ubuntu16041:~/Firebird-3.0.0.32483-0.amd64$ sudo ./install.sh

Firebird 3.0.0.32483-0.amd64 Installation

Press Enter to start installation or ^C to abort
Extracting install data
Please enter new password for SYSDBA user: masterkey
Segmentation fault (core dumped)

Install completed

Yüklemenin tamamlandığını söyleyen mesajı vermesine rağmen hata mesajı ile yüklemeyi nihayetlendiriyor. * tabi ki firebird sunucusunun çalışmadığını görüyoruz bu durumda :

gnukarabatak@ubuntu16041: service firebird status
● firebird.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

firebird.log dosyasının içi boş. Fakat çekirdek mesajlarında *bir şeyler var gibi :

gnukarabatak@ubuntu16041:dmesg

mesajların son kısımları :

[    9.927322] floppy0: no floppy controllers found
[  132.398384] show_signal_msg: 6 callbacks suppressed
[  132.398395] gsec[3540]: segfault at 8 ip 00007fe8bd095e87 sp 00007ffcae11e140 error 4 in libfbclient.so.3.0.0[7fe8bd055000+1a1000]
[  132.577528] firebird[3551]: segfault at 8 ip 00007f69f2ad3e87 sp 00007ffed05cb6f0 error 4 in libfbclient.so.3.0.0[7f69f2a93000+1a1000]
[  133.672200] firebird[3554]: segfault at 8 ip 00007f782cd38e87 sp 00007ffe7c65c590 error 4 in libfbclient.so.3.0.0[7f782ccf8000+1a1000]
[  134.760179] firebird[3556]: segfault at 8 ip 00007fee24aafe87 sp 00007ffdb8140300 error 4 in libfbclient.so.3.0.0[7fee24a6f000+1a1000]
[  135.849030] firebird[3558]: segfault at 8 ip 00007f4f2b2b2e87 sp 00007ffc5f7fe590 error 4 in libfbclient.so.3.0.0[7f4f2b272000+1a1000]
[  136.937102] firebird[3560]: segfault at 8 ip 00007fc01101be87 sp 00007ffc69554a20 error 4 in libfbclient.so.3.0.0[7fc010fdb000+1a1000]
[  138.025883] firebird[3562]: segfault at 8 ip 00007fa8247b3e87 sp 00007ffe0631f060 error 4 in libfbclient.so.3.0.0[7fa824773000+1a1000]
[  139.114142] firebird[3564]: segfault at 8 ip 00007fe4e548fe87 sp 00007ffc057262e0 error 4 in libfbclient.so.3.0.0[7fe4e544f000+1a1000]
[  140.205071] firebird[3566]: segfault at 8 ip 00007fc51e627e87 sp 00007ffe4bd1e520 error 4 in libfbclient.so.3.0.0[7fc51e5e7000+1a1000]
[  141.292161] firebird[3568]: segfault at 8 ip 00007f2eb76e8e87 sp 00007fff753dd830 error 4 in libfbclient.so.3.0.0[7f2eb76a8000+1a1000]
[  141.374554] firebird[3570]: segfault at 8 ip 00007f62f7b8be87 sp 00007fff52a1fee0 error 4 in libfbclient.so.3.0.0[7f62f7b4b000+1a1000]
[  142.464179] firebird[3572]: segfault at 8 ip 00007f5156dd9e87 sp 00007ffc4a4e7f30 error 4 in libfbclient.so.3.0.0[7f5156d99000+1a1000]
[  143.553127] firebird[3574]: segfault at 8 ip 00007f8f0c90be87 sp 00007fff14a20820 error 4 in libfbclient.so.3.0.0[7f8f0c8cb000+1a1000]
[  144.645310] firebird[3576]: segfault at 8 ip 00007f1d7ba70e87 sp 00007ffd45e94f70 error 4 in libfbclient.so.3.0.0[7f1d7ba30000+1a1000]
[  145.766911] firebird[3578]: segfault at 8 ip 00007f7e898f9e87 sp 00007ffda1ed6700 error 4 in libfbclient.so.3.0.0[7f7e898b9000+1a1000]
[  146.887070] firebird[3580]: segfault at 8 ip 00007fb6b31c6e87 sp 00007ffd17ed7220 error 4 in libfbclient.so.3.0.0[7fb6b3186000+1a1000]
[  147.976137] firebird[3582]: segfault at 8 ip 00007f7f4f56de87 sp 00007ffe61da6b10 error 4 in libfbclient.so.3.0.0[7f7f4f52d000+1a1000]
[  149.067005] firebird[3584]: segfault at 8 ip 00007fefc3051e87 sp 00007fffed6ee4c0 error 4 in libfbclient.so.3.0.0[7fefc3011000+1a1000]
[  150.153823] firebird[3586]: segfault at 8 ip 00007f50b127ee87 sp 00007ffd7e8d95e0 error 4 in libfbclient.so.3.0.0[7f50b123e000+1a1000]
[  151.243073] firebird[3588]: segfault at 8 ip 00007f71e6c81e87 sp 00007ffd1e4d8f10 error 4 in libfbclient.so.3.0.0[7f71e6c41000+1a1000]
[  152.330886] firebird[3590]: segfault at 8 ip 00007fe6eac31e87 sp 00007fff1237a900 error 4 in libfbclient.so.3.0.0[7fe6eabf1000+1a1000]
[  153.418112] firebird[3592]: segfault at 8 ip 00007fc7aa4e9e87 sp 00007ffc45b971d0 error 4 in libfbclient.so.3.0.0[7fc7aa4a9000+1a1000]
[  154.507948] firebird[3594]: segfault at 8 ip 00007fce2606fe87 sp 00007ffff18fe9e0 error 4 in libfbclient.so.3.0.0[7fce2602f000+1a1000]
[  155.602686] firebird[3596]: segfault at 8 ip 00007f7d885c7e87 sp 00007ffdbfc438e0 error 4 in libfbclient.so.3.0.0[7f7d88587000+1a1000]
[  156.726910] firebird[3598]: segfault at 8 ip 00007f253f508e87 sp 00007ffc79857740 error 4 in libfbclient.so.3.0.0[7f253f4c8000+1a1000]
[  157.852756] firebird[3600]: segfault at 8 ip 00007fde69117e87 sp 00007ffc1b511600 error 4 in libfbclient.so.3.0.0[7fde690d7000+1a1000]
[  158.973108] firebird[3602]: segfault at 8 ip 00007fb6e7b6ee87 sp 00007ffcabde2280 error 4 in libfbclient.so.3.0.0[7fb6e7b2e000+1a1000]
[  160.065581] firebird[3604]: segfault at 8 ip 00007f361254fe87 sp 00007ffeffaec6b0 error 4 in libfbclient.so.3.0.0[7f361250f000+1a1000]
[  161.184950] firebird[3606]: segfault at 8 ip 00007fe16f14fe87 sp 00007ffc6aa9d630 error 4 in libfbclient.so.3.0.0[7fe16f10f000+1a1000]


Firebird 3.0 windows üzerinde sıkıntısız kurulabiliyor. Bu hata ile ilgili olarak Firebird forumlarında dolaştım fakat olay ubuntuylamı alakalı yoksa firebird lemi tam çözemedim. Sonuçta ubuntu sunucu üzerine Firebird 3.0 Veritabanı sunucu yazılımını kurmam gerekiyor, Ama nasıl?


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 01 Eylül 2016 - 19:12:21

Ek olarak şunu da belirteyim gerçi farkedermi bilmem ama bu ubuntu sunucu ve deneme yaptığım windows lar Virtualbox üzerinde kurulu sanal işletim sistemleridir.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 02 Eylül 2016 - 16:37:52

Bugün itibariyle aynı yükleme çalışmasını xubuntu yüklü 64 bit bir (fiziki olarak var olan) makinada yapmaya çalıştım. Sonuç değişmedi, aynı problemi yaşadım.
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.

heartsmagic

Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

gnukarabatak


gnukarabatak@ubuntu16041:~$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX
tr_CY.utf8
tr_TR.utf8


Evet sistem dili Türkçe. Daha doğrusu ben Türkçe kurdum. Aynı denemeyi CentOS 7.x ile yaptım. Oradaki kurulumda da başka bir hata vermişti. Eğer imkanın varsa sanal makinada deneme yapma şansın varmı @heartsmagic? Bu sunucu yazılımı (firebird 3.0) 'ın tüm linux dağıtımlarında kurulamıyor olması çok garip geldi bana.
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.

bugra9

Ben de dilin Türkçe olmasından kaynaklandığını düşünüyorum. Hata kullanıcı ekleme sırasında meydana geliyor ve kullanıcı eklenmeden işlemlere devam ediliyor gibi görünüyor. "scripts/postinstall.sh" dosyasındaki
runSilent "/opt/firebird/bin/gsec -add sysdba -pw $passwd"
satırını
runSilent "LC_CTYPE=C /opt/firebird/bin/gsec -add sysdba -pw $passwd"
şeklinde değiştirip kurulumu tekrar yapar mısın. Bu sefer "Segmentation fault" hatasını almayacağını düşünüyorum.

gnukarabatak


please enter new password for SYSDBA user: masterkey
./scripts/postinstall.sh: 125: ./scripts/postinstall.sh: LC_CTYPE=C: not found

install completed



gnukarabatak@ubuntu16041:$ service firebird status
* firebird.service
     Loaded: not-found (Reason: No such file or directory)
     Active: inactive (dead)


Sonuç bu ve yine çalışmıyor.
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.

gnukarabatak

Başka bir 16041 sürümlü bir sanal makina sunucusu daha kurdum. Bunun üzerinde dili ingilizce klavyesi türkçe ayarlı olarak ayarlama yaptım.

gnukarabatak@ubuntu16041ENG:~/Firebird-3.0.1.32609-0.amd64$ sudo ./install.sh

Firebird 3.0.1.32609-0.amd64 Installation

Press Enter to start installation or ^C to abort
Extracting install data
Please enter new password for SYSDBA user: masterkey
Install completed

Görüldüğü üzere kurulumu bu sefer hata mesajı vermeden gerçekleştirdi. Fakat hâlâ service aktif değil. Diğer durumlarda aşağıda olduğu gibi.

gnukarabatak@ubuntu16041ENG$ service firebird status
● firebird.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)


gnukarabatak@ubuntu16041ENG$ ps aux|grep fbserver
gnukarabatak    3624  0.0  0.0  14196  1008 pts/0    S+   09:36   0:00 grep --color=auto fbserver




gnukarabatak@ubuntu16041ENG$ top -b -n1 | grep [f]irebird
3611 firebird  20   0   30284    448      0 S  0.0  0.0   0:00.00 fbguard
3613 firebird  20   0  233932   7884   7048 S  0.0  0.4   0:00.00 firebird


Bu kurulmuş şekliyle isql veritabanı yönetim yazılımı ile bir veritabanı create etmeyi denedim. Sonuç aşağıdaki gibi oldu.

gnukarabatak@ubuntu16041ENG:/opt/firebird/bin$ ./isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database "/home/gnukarabatak/ffirst_database.fdb" user 'SYSDBA' password 'masterkey';
Statement failed, SQLSTATE = 08006
Can not access lock files directory /tmp/firebird/
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.

bugra9

O iletiyi yazdığımda olmuştu da şimdi deneyince olmadı. Neyse şimdi kısaca,
LC_CTYPE=C sudo sh install.sh
şeklinde başlatınca 3.0.0 sürümü hatasız yükleniyor. Tabi bunun bir de çalıştırma olayı var ki sorunlu yazılımlar yine LC_CTYPE=C parametresiyle başlatılmalı.

Dil olayını bir tarafa bırakıp normal şekilde yükleme/çalıştırma olayına bakalım. İlginç şekilde 3.0.0 sürümü hatasız yüklenirken 3.0.1 sürümü hata veriyor. Bu bir dursun, o hataya sonra bakacağım, şimdi 3.0.0 dan devam ediyorum. Systemd ile ilgili servis dosyaları "/lib/systemd/system/" dizini içerisinde bulunuyor. Burada firebird ile alakalı
- firebird-classic.socket
- firebird-classic@.service
- firebird-superserver.service

dosyaları oluşturulmuş. Yani,
service firebird-superserver status
komutu verdiğinde sana başlatıldığına dair bilgi vermesi gerekiyor ki bende öyle oluyor.

Şimdi senin denediğin gibi aşağıdaki komutu deniyorum. (Sistemim Türkçe ve Firebird 3.0.0)

bugra@bugra:/opt/firebird/bin$ ./isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database "/home/bugra/ffirst_database.fdb" user 'SYSDBA' password '1';
Statement failed, SQLSTATE = XX000
/opt/firebird/databases.conf: illegal line <employee.fdb = $(dir_sampleDb)/employee.fdb>

Bu yazılım komple sorunlu :D

Biraz bakınıp tekrar döneceğim. Bu arada yanlış şeyler yazıyor ya da yanlış yol izliyorsam beni uyarırsın. Bu yazılımı daha önce hiç kullanmadım.

gnukarabatak

Dediğin gibi @bugra service bilgisine yanlış bakıyormuşum. Diğer 2.5.6 daki adı ile 3.0 daki adı farklı yada 3.0.1 deki.

gnukarabatak@ubuntu16041ENG:~$ service firebird-superserver status
● firebird-superserver.service - Firebird Database Server ( SuperServer )
   Loaded: loaded (/lib/systemd/system/firebird-superserver.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2016-09-29 22:33:59 EEST; 4min 43s ago
  Process: 2247 ExecStart=/opt/firebird/bin/fbguard -pidfile /var/run/firebird/default.pid -daemon -forever (code=exited
Main PID: 2277 (firebird)
    Tasks: 4
   Memory: 18.6M
      CPU: 44ms
   CGroup: /system.slice/firebird-superserver.service
           ├─2276 /opt/firebird/bin/fbguard -pidfile /var/run/firebird/default.pid -daemon -forever
           └─2277 /opt/firebird/bin/firebird

Sep 29 22:33:59 ubuntu16041ENG systemd[1]: Starting Firebird Database Server ( SuperServer )...
Sep 29 22:33:59 ubuntu16041ENG systemd[1]: firebird-superserver.service: PID file /var/run/firebird/default.pid not read
Sep 29 22:33:59 ubuntu16041ENG systemd[1]: firebird-superserver.service: Supervising process 2277 which is not our child
Sep 29 22:33:59 ubuntu16041ENG systemd[1]: Started Firebird Database Server ( SuperServer ).


Isql ile veritabanı oluşturma da yine aynı hatayı almaya devam ediyorum. Bendeki hata sendekinden farklı.? Dediğin gibi bu yazılım biraz sorunlu gibi :) Firebird veritanını 1.0 sürümünden beri kullanırım. Bu 3.0 sürümünde çok güzel yeni özellikler var. Umarım linux üzerinde birgün çalıştırabilirim.
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.

if

@gnukarabatak, kurulum vs. gibi bütün süreçte kullandığın komutların başına LC_ALL=C koyup uyguladığında nasıl bir sonuç alıyorsun?

bugra9

Alıntı YapCan not access lock files directory /tmp/firebird/
/tmp/firebird/ dizininin sahibi ve grubu firebird. Şuan senin kullanıcının firebird grubuna ait klasöre yazma yetkisi olmadığı için yazılım o hatayı veriyor.

O yere yazabilmesi için kullanıcının firebird grubuna kaydedilmesi (ne kadar güvenli olur bilemedim) ve başka çözüm önerileri verilmiş.
https://bugs.launchpad.net/ubuntu/+source/firebird2.5/+bug/678318

gnukarabatak

@if ;
LC_CTYPE=C sudo sh install.sh
şeklinde firebird 3.0.1 sürümünü hata vermeden kurabildim. Ancak veritabanı oluştururken bugranın aldığı hatanın aynısını bende alıyorum.
@bugra;
Benim kullanıcıma doğru bir şekilde grup yetkilendirmesini tarif edermisiniz? Yani grup, sahiplik ve diğer yetkiler eğer gerek varsa nasıl vermeliyiz. Tabi bunu normal firebird kullacınısının keyfini kaçırmadan nasıl yapababiliriz?
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.

bugra9

Ben kullanıcımı bir gruba kaydedeceğim zaman kullanıcı ayarlarından görsel olarak yapıyorum. :) Ama yukarıda verdiğim bağlantıda aşağıdaki komut ile ekleme yapmış.
sudo adduser `id -un` firebird
Etkin olması için kullanıcından çıkış yapıp tekrar girmen gerekebilir.

Bana göre güvenli gelmemesinin nedeni başka çalışan bir yazılımın /tmp/firebird dizinine erişebilir olacak olması. Çok küçük bir olasılık olsa da art niyetli bir yazılım bu bilgilerden bir şey çıkarmaya çalışabilir diye düşündüm. Doğrusu nedir bilmiyorum ve bu izinlerden de pek anlamam ama ben olsam,
sudo -g firebird /opt/firebird/bin/isql
şeklinde çalıştırırdım. Yanlış bilmiyorsam bu şekilde kendi kullanıcınla (sudo var diye yönetici yetkisiyle çalışacak diye düşünme) ilave olarak firebird grubuna kayıtlıymışsın gibi yazılımı çalıştırabilirsin. Eğer yanıldığım bir nokta varsa bilenlerin beni düzelteceğini umuyorum :)

---
Türkçe olarak çalıştırmaya gelince; eğer bunu çözemezsen ve bilgisayarı Türkçe kullanmak istersen sana küçük bir ipucu vereyim.
sudo gedit /etc/default/locale
şeklinde dosyayı açıp en alta,
LC_CTYPE="en_US.UTF-8"
satırını ekleyip, kaydedip, bilgisayarı yeniden başlatırsan sistem hem Türkçe kalır hem de Türkçe kullanımdan dolayı görülen hataların hiçbirini görmezsin. Bunun karşılığında kayıp olarak da sadece çok çok az yerde İ harfi yerine I harfini ve ı harfi yerine de i harfini görürsün.

gnukarabatak

Sonunda çözüldü. :) Verdiğin kodların hepsi doğru çalıştı @bugra. Hakkını teslim etmek gerekir. İnternette çözümü olmayan bir konuyu çözme başarısı herkesin harcı değildir. Bu yüzden çok teşekkür ederim. Artık firebird 3.0 için windows'a mahkum değilim :)

Yaptıklarımı özetleyecek olursak; Öncelikle Türkçe olan sistemim için @bugra'nın

sudo nano /etc/default/locale

komutu ile açıp içindeki satırı
LC_CTYPE="en_US.UTF-8"
yaparak değiştirdim. Sonrasında
sudo -g firebird /opt/firebird/bin/isql
komutu ile isql veritabanı yönetim yazılımına giriş yaptım. "CREATE DATABASE" komutu ile başarılı bir şekilde veritabanımı oluşturdum. Ayrıca önceden isql programından "exit;" komutu çıkarken "Çekirdek döküldü" hatası veriyordu, şimdi  hata vermeden programdan çıkabiliyor.

Diğer ingilizce kurmuş olduğum aynı ubuntu sunucusu olan sistemde
sudo -g firebird /opt/firebird/bin/isql
ile doğrudan işlem yaptım ve hiçbir hataya rastlamadım. Sonuç :

Sorun çözüldü :)

@heartsmagic, @if ve @bugra hepinizi katkılarıyla bu sorun çözüldüğü tekrar teşekkür ederim.
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.

bugra9

Rica ederiz. Tüm çözümü tek iletide toplaman güzel olmuş, eline sağlık. Sorun çözüldüğüne göre konuyu kilitleyelim.