Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Mam pewien program, który wiem, że działa, ale na moim systemie nie (Linux Debian) nie wiem dlaczego - czy muszę doinstalować jakieś biblioteki czy coś, gdyż uruchamiając go otrzymuję komunikat "Naruszenie ochrony pamięci". Nie wiem jak sprawdzić jakiś log błędów czy coś. Niestety nie mam dostępu, tam gdzie program działa poprawnie i jakie zostały tam zainstalowane biblioteki, więc dlatego proszę o pomoc. A muszę, akurat ten uruchomić.
Link do pliku: http://demo.ovh.pl/download/4749f43ce645ae72b5f79a2 … c_trans_pilot
Pozdrawiam
Offline
A co to za program, źródła programu można prosić?
Poza tym zainteresuj się gdb i strace (zwłaszcza strace -f).
Sznurek: http://www.gentoo.org/proj/pl/qa/backtraces.xml
Offline
Źródła nie posiadam, i chyba tylko twórca je posiada.
Zrobiłem i mam takie coś:
root@serwer:~# strace -f ./sc_trans_pilot execve("./sctrans", ["./sctrans"], [/* 15 vars */]) = 0 [ Process PID=3141 runs in 32 bit mode. ] brk(0) = 0x9d99000 uname({sys="Linux", node="proxmox", ...}) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffffffffb7718000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffffffffb7717000 set_thread_area(0xbf97debc) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ root@serwer:~#
Ostatnio edytowany przez desavil (2011-05-25 15:32:17)
Offline
Prochu nie wymyślisz, być może program jest na inną architekturę, albo kompilowany jakimś zupełnie innym kompilatorem, nowszym lub starszym, od obecnego, albo zwyczajnie ma błędy w kodzie.
Jak jest jakaś strona tego programu, to może można się z niej conieco dowiedzieć, w stylu - czy jest inna wersja, i co dokładnie ten program robi, niewiele jest programów, które nie mają zamiennika.
Zawsze też można napisać do twórcy programu, żeby się conieco dowiedzieć.
Edyta:
Jeśli chodzi o Shutcast, to na pewno jest inne wyjście, np: http://andi.mine.nu/ (to do Icecasta)
Lepiej napisz, co ten tajemniczy program ma robić.
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2011-05-25 15:47:20)
Offline
To AutoPilot, działający poprawnie :) dlatego mi na tym tak zależy, aby właśnie ten działał.
Offline
A czym steruje ten AutoPilot? samolotami NATO nad Libią?
Bo jeśli jakimś serwerem internetowym, to na 99% da się go zastąpić, wystarczy trochę pokombinować.
Jak się nazywa ta tajemnicza aplikacja, którą ten AutoPilot steruje.
I kiedy został napisany i skompilowany , i pod jaki system operacyjny.
Ostatnio edytowany przez Jacekalex (2011-05-25 15:58:00)
Offline
Twórcą jest nullsoft (shoutcast.com, winamp).
Jest to oprogramowanie dzięki, któremu można nadawać muzykę na serwer radiowy ShoutCast.
Tak jak mówię nie wiem jak został skomplikowany, pod jaki system itp. Raczej nie został skomplikowany gdyż pliki źródłowe ma tylko i wyłącznie nullsoft. Prawdopodobnie brakuje mi jakiś bibliotek niestety nie wiem jakich.
Tak muszę akurat używać tej wersji - nie innej.
Ostatnio edytowany przez desavil (2011-05-25 16:02:35)
Offline
Jaki to był system na którym program działał?
Offline
Wydaje mi się że to debian. Ale jak otworzyłem ten program w notepad++ w poszukiwaniu słowa kluczowego version znalazłem takie coś:
GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.3 2.96-113)
nie wiem czy ma to jakieś znaczenie. Program raczej działa na Debianie i jest uruchamiany normalnie ./nazwa
Offline
Ech, nie wiem czy coś tu wykombinujemy, nie ma od czego zacząć nawet. ;)
U mnie tylko:
$ ls -l sc_trans_pilot -rwxr-xr-x 1 arnvaker arnvaker 806382 05-25 16:34 sc_trans_pilot
$ ./sc_trans_pilot bash: ./sc_trans_pilot: Nie ma takiego pliku ani katalogu
Offline
A dałeś plik do odpowiedniego katalogu, skąd go uruchamiasz :) ?
Chyba nie bo jest błąd - Nie ma takiego pliku ani katalogu
Hmm, dziwne. Kolega zrobił tak jak Ty na ubuntu i wyskoczyło naruszenie ochrony pamięci.
Ostatnio edytowany przez desavil (2011-05-25 16:44:51)
Offline
Tak, dorzuciłem tę informację w poprzednim poście.
Offline
A jaki masz system? Bo chyba u Ciebie nie odpala się programów za pomocą ./
Offline
Debian Sid amd64
$ cd /usr/bin/
$ ls -l lscpu -rwxr-xr-x 1 root root 19304 02-13 16:50 lscpu
$ ./lscpu Architecture: x86_64 CPU op-mode(s): 64-bit CPU(s): 2 Thread(s) per core: 1 Core(s) per socket: 2 CPU socket(s): 1 Vendor ID: AuthenticAMD CPU family: 15 Model: 107 Stepping: 2 CPU MHz: 2600.000 Virtualization: AMD-V L1d cache: 64K L1i cache: 64K L2 cache: 512K
Offline
Hmm, to nie mam pojęcia, czemu Ci go nie wykrywa.
Offline
Też nie wiem, ale na wszystkich innych wykonywalnych plikach bangla. Nie działa tylko ten Twój. ;)
Offline
adam@debian:~/LIB$ file /home/adam/LIB/sc_trans_pilot /home/adam/LIB/sc_trans_pilot: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
U mnie też jest naruszenie ochrony pamięci.
Trzeba by wypróbować na jakimś staruszku.
Sarge moze Etchu.
Wydaje mi się ,że to jest bardzo stare.
Chociażby użyta wersja kompilatora na to wskazuje.
Offline
No to trudno chyba nic z tym nie wymyślę, szkoda.
Muszę więc zrobić alternatywę. Dlaczego tak na prawdę chciałem używać tej wersji?
Odpowiedź jest prosta jest to program, który nadaje strumień dźwiękowy na serwer radiowy (ShoutCast). Jeżeli użytkownicy wrzucą na swojego AutoPilota pliki MP3 zawierające jakieś błędy z jakością, bądź samy,m plikiem wtedy program sc_trans_pilot (w wersji tej co mam obecnie stabilnej) zjada ponad 40% ramu i 50% procesora to dosyć sporo z 8GB ddr3 i CPU: 4x2 i7 3,66+GHz więc łatwo można obliczyć ile takie coś zużywa wtedy + trzeba wziąźć pod uwagę to iż działają inne aplikacje, które też pobierają zasoby.
Wymyśliłem już na to co nieco sposób mianowicie napisać skrypt, który by sprawdzał co minutę czy jakiś AutoPilot nie obciąża zbyt dużo pamięci oraz procesora jeżeli w ciągu dwóch minut nadal będzie obciążał zostanie wyłączony. Tylko jest jak zwykle problem, ja sobie zrobię to w PHP i cronem będę uruchamiał, wiem jak wyświetlić procesy i posortować według zużycia procesora "ps auxww --sort %cpu | grep sc_trans_pilot", ale jak wyświetlić to samo ale z pamięcią ram? Próbowałem zamiast %cpu wpisywać: %ram, ram i nic.
Ostatnio edytowany przez desavil (2011-05-25 17:32:16)
Offline
# aptitude install ia32-libs Następujące NOWE pakiety zostaną zainstalowane: ia32-libs lib32asound2{a} lib32bz2-1.0{a} lib32gcc1{a} lib32ncurses5{a} lib32stdc++6{a} lib32v4l-0{a} lib32z1{a} libc6-i386{a} 0 pakietów aktualizowanych, 9 instalowanych, 0 do usunięcia i 0 nie aktualizowanych. Do pobrania 39,4 MB archiwów. Zajęte po rozpakowaniu: 96,8 MB.
$ ./sc_trans_pilot Naruszenie ochrony pamięci
;)
Offline
A ja bym postawił na Icecasta do wysyłania, na serwer, natomiast co do plików wrzucanych, to jak są wrzucane (ftp, http - POST, czy inaczej).
Jeśli FTP - uploadscript odpalający funkcje sprawdzające plik.
Http - jesli formularz php -to upload-script możesz podpiąć przez moduł Suhosin do php (ma taką opcję).
W samym http nie widziałem takiej funkcji, ale można coś wykombinować, czasami w modułach serwera www, czasami np:
iwatch, inoticoming, czy dnotify
Także opcji trochę jest ;)
GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.3 2.96-113)
Jest jeszcze jedna opcja, choć to jazda d*** po nieheblowanej desce, raczej dla hakerów.
Jeśli to jest konsolowy program, to może stage1 Gentoo, w chroocie:
Przebudować któryms z tych gcc:
sys-devel/gcc Available versions: (2.95) 2.95.3-r9 ~2.95.3-r10!s ~2.95.3-r10!s[6 (3.1) 3.1.1-r2 3.1.1-r2[6]]
Podmontować w chroocie folder, gdzie trafia muza, i po sprawie.
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2011-05-25 17:49:13)
Offline
Ludzie wrzucają pliki do swojego pilota przez FTP. AutoPilot ma ustaloną jakość nadawania tego strumienia na serwer ShoutCast, i konwertuje pliki MP3 w locie wysyłając strumień na serwer ShoutCast, jeżeli zawierają jakieś błędy wtedy pilot nie umie ich prze-konwertować i się dzieje to co wspomniałem wyżej.
Co do icecast pełni on rolę serwera na który jest nadawany strumień (tak jak ShoutCast), a chyba nie pełno roli AutoPilota (oprogramowania nadającego strumień).
Chodź tego nie wymaga mój AutoPilot zainstalowałem na serwerze biblioteki lame oraz aacp z myślą iż to coś da, może i coś dało. cpu się obniżyło ale nadal gdy pliki MP3 są uszkodzone to zabiera ram i CPU dużo. Co powoduje mi z czasem nawet zawieszenie serwera i technik musi zrobić hard-reboot :)
Ostatnio edytowany przez desavil (2011-05-25 17:50:42)
Offline
Muszę więc zrobić alternatywę. .....
To, co piszesz, załatwi skrypt upload-script, choć pewnie będzie trzeba trochę porzeźbić.
Jeśli jest jakiś konsolowy program, który z wiersza poleceń potrafi wysłać coś na serwer Shoutcast, (chyba raczej jest), jeśli jest jakiś program sprawdzający jakość pliku mp3 (chyba jest), albo moduł np do perla czy pythona, który zapewnia taką funkcję (raczej jest), i jest program zmieniający parametry pliku mp3 - też jest, np mencoder czy ffmpeg, to jest całkowicie wykonalne.
W dodatku zamiast programu sprawdzającego jakość można też użyć ffmpeg, w stylu albo konwertuje na określone parametry, albo wywala błąd, i ma wyjście błędu, pozwalające na ustawienie warunku na podstawie wygrepowanego komunikatu o błędzie.
Ostatnio edytowany przez Jacekalex (2011-05-25 17:58:35)
Offline
Mógłby ktoś spróbować uruchomić tę aplikację na RedHat, CentOS, FreeBSD?
Ostatnio edytowany przez desavil (2011-05-26 17:26:55)
Offline
Proszę o sprawdzenie jeżeli to możliwe, głównie na CentOS.
Ostatnio edytowany przez desavil (2011-06-01 12:38:29)
Offline
Problemem jest postawienie VB i tam przetestować?
Offline