Перейти до

Проблемы со сборкой Mysql_store в Stg-2.405.9.8


Рекомендованные сообщения

Пытаюсь собирать старгейзер в 64-битной системе (Linux, Gentoo 2007.0, вывод uname -a: Linux server 2.6.25-gentoo-r5 #3 SMP Tue Jul 1 18:37:21 NOVST 2008 x86_64 Intel® Core™2 Quad CPU Q9300 @ 2.50GHz GenuineIntel GNU/Linux). Версия gcc - x86_64-pc-linux-gnu-4.3.1.

 

Скачиваю, распаковываю, перехожу в projects/stargazer, делаю ./build... И в районе сборки mysql_store получаю ошибку. Вот вывод некотрого количества последних строк:

 

gmake  -C store/mysql
gmake[2]: Entering directory `/root/stg-2.405.9.8/projects/stargazer/plugins/store/mysql'
../../Makefile.in:35: deps: Нет такого файла или каталога
gmake[2]: Leaving directory `/root/stg-2.405.9.8/projects/stargazer/plugins/store/mysql'
gmake[2]: Entering directory `/root/stg-2.405.9.8/projects/stargazer/plugins/store/mysql'
g++ -c mysql_store.cpp -O2 -I/usr/local/include -Wall -fPIC -I /root/stg-2.405.9.8/projects/stargazer/../../include -DLINUX
In file included from mysql_store.cpp:8:
/root/stg-2.405.9.8/projects/stargazer/../../include/user_ips.h: In function 'const USER_IPS StrToIPS(const std::string&)':
/root/stg-2.405.9.8/projects/stargazer/../../include/user_ips.h:209: ошибка: нет декларации 'strcpy' в этой области видимости
/root/stg-2.405.9.8/projects/stargazer/../../include/user_ips.h:211: ошибка: нет декларации 'strtok' в этой области видимости
/root/stg-2.405.9.8/projects/stargazer/../../include/user_ips.h:225: ошибка: нет декларации 'strtok' в этой области видимости
mysql_store.cpp: In member function 'virtual int MYSQL_STORE::GetMessage(uint64_t, STG_MSG*, const std::string&) const':
mysql_store.cpp:1869: предупреждение: формат '%lld' предполагает тип 'long long int', но аргумент 4 имеет тип 'uint64_t'
gmake[2]: *** [mysql_store.o] Ошибка 1
gmake[2]: Leaving directory `/root/stg-2.405.9.8/projects/stargazer/plugins/store/mysql'
gmake[1]: *** [store/mysql] Ошибка 2
gmake[1]: Leaving directory `/root/stg-2.405.9.8/projects/stargazer/plugins'
gmake: *** [plugins] Ошибка 2

 

Приблизительно то же самое происходит при попытке сборки старгейзера с уже пропатченным модулем от Alferov'a.

 

На всякий случай мой make.conf

 

CFLAGS="-march=core2 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
USE="-acl -berkdb bzip2 -cups -dbus -fortran -f77 -gdbm -gpm -gtk -ipv6  \
ithreads -ldap logrotate nls nptl mysql -pam -snmp slang unicode -X samba xml apache2"
ACCEPT_KEYWORDS="~amd64"
LANGUAGE="ru"
LINGUAS="ru"
MAKEOPTS="-j5"
MULTILIB_ABIS="amd64"
ABI=amd64

 

Возможно я что-то делаю не так, а возможно есть какая-то проблема... Или какая-нибудь особенность 64-битной среды... Кто-нибудь сталкивался с подобным? В какую сторону копать?

Ссылка на сообщение
Поделиться на других сайтах

Добавь #include <cstring> в файл include/user_ips.h

Примерно так:

#ifndef USER_IPS_H
#define USER_IPS_H

#include <stdio.h>
#include <vector>
#include <algorithm>
#include <string>
#include <iostream>
#include <sstream>
#include <cstring>
/////////////////////////
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

Ссылка на сообщение
Поделиться на других сайтах

Добавил. Сборка прошла чуть-чуть дальше. Теперь вываливается следующее:

 

g_locker -lstg_common -lconffiles -o mod_store_mysql.so
ln -fs "`pwd`/mod_store_mysql.so" /root/stg-2.405.9.8_Alf/projects/stargazer/modules/mod_store_mysql.so
gmake[2]: Leaving directory `/root/stg-2.405.9.8_Alf/projects/stargazer/plugins/store/mysql'
gmake[1]: Leaving directory `/root/stg-2.405.9.8_Alf/projects/stargazer/plugins'
g++ -c admin.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
g++ -c admins.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
g++ -c main.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
g++ -c curr_ip.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
g++ -c settings.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
g++ -c stg_timer.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
g++ -c tariff.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
g++ -c tariffs.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
g++ -c traffcounter.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
g++ -c user.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
user.cpp:1441:11: warning: #warning "TODO: gcc v. 4.x generate ICE on x86_64"
user.cpp:1529:23: warning: #warning "TODO: gcc v. 4.x generate ICE on x86_64"
g++ -c user_property.cpp -O2 -I/usr/local/include -Wall -I /root/stg-2.405.9.8_Alf/projects/stargazer/../../include -DLINUX
In file included from admin.h:46,
                from user_property.h:22,
                from user_property.cpp:1:
/root/stg-2.405.9.8_Alf/projects/stargazer/../../include/admin_conf.h: In constructor 'ADMIN_CONF::ADMIN_CONF()':
/root/stg-2.405.9.8_Alf/projects/stargazer/../../include/admin_conf.h:32: ошибка: нет декларации 'memset' в этой области видимости
gmake: *** [user_property.o] Ошибка 1

 

Немного смущают загадочные

user.cpp:1441:11: warning: #warning "TODO: gcc v. 4.x generate ICE on x86_64"

:)

Ссылка на сообщение
Поделиться на других сайтах
  • 4 months later...

У меня похоже ругается под фришкой (FeeBSD AMD64 7.1)

 

user.cpp:1364:11: warning: #warning "TODO: gcc v. 4.x generate ICE on x86_64"

user.cpp:1452:23: warning: #warning "TODO: gcc v. 4.x generate ICE on x86_64"

g++ -c user_property.cpp -O2 -I/usr/local/include -Wall -I /usr/home/vanya/stg-2.405.9.8/projects/stargazer/../../include -DFREE_BSD5

g++ -c users.cpp -O2 -I/usr/local/include -Wall -I /usr/home/vanya/stg-2.405.9.8/projects/stargazer/../../include -DFREE_BSD5

g++ -c plugin_runner.cpp -O2 -I/usr/local/include -Wall -I /usr/home/vanya/stg-2.405.9.8/projects/stargazer/../../include -DFREE_BSD5

g++ admin.o admins.o main.o curr_ip.o settings.o stg_timer.o tariff.o tariffs.o traffcounter.o user.o user_property.o users.o plugin_runner.o /usr/home/vanya/stg-2.405.9.8/projects/stargazer/../../lib/libstg_logger.so /usr/home/vanya/stg-2.405.9.8/projects/stargazer/../../lib/libstg_locker.so /usr/home/vanya/stg-2.405.9.8/projects/stargazer/../../lib/libstg_common.so /usr/home/vanya/stg-2.405.9.8/projects/stargazer/../../lib/libscript_executer.so /usr/home/vanya/stg-2.405.9.8/projects/stargazer/../../lib/libdotconfpp.so -O2 -I/usr/local/include -Wall -L/usr/local/lib -Wl,-E -L/usr/home/vanya/stg-2.405.9.8/projects/stargazer/../../lib -Wl,-rpath,/usr/lib/stg -Wl,-rpath-link,/usr/home/vanya/stg-2.405.9.8/projects/stargazer/../../lib -o stargazer

stg_timer.o(.text+0x95): In function `RunStgTimer()':

: undefined reference to `pthread_create'

traffcounter.o(.text+0x165e): In function `TRAFFCOUNTER::Start()':

: undefined reference to `pthread_create'

users.o(.text+0x2576): In function `USERS::Start()':

: undefined reference to `pthread_create'

gmake: *** [stargazer] Error 1

Ссылка на сообщение
Поделиться на других сайтах
Где-то ты что-то неправильно подпатчил в build или Makefile

Я не вижу -lpthread в последней команде.

в build пропатчил, после запуска та ругань что выше

Ссылка на сообщение
Поделиться на других сайтах

на линуксе собрал вроде все ок, патченную от Alferov, с его сборки 2.405, поставил в /usr/lib/stg

но при запуске выдало.

 

Parse 'mysql_store v.0.68-mutex (STG-Web)' module settings error: mysql init module failed!

Ссылка на сообщение
Поделиться на других сайтах
в build пропатчил, после запуска та ругань что выше

Я знаю что пропатчил. Я говорю что неправильно или не до конца пропатчил.

Ссылка на сообщение
Поделиться на других сайтах
на линуксе собрал вроде все ок, патченную от Alferov, с его сборки 2.405, поставил в /usr/lib/stg

но при запуске выдало.

 

Parse 'mysql_store v.0.68-mutex (STG-Web)' module settings error: mysql init module failed!

Нужно больше информации.

Но что-то мне подсказывает, что косяк в настройках модуля.

Ссылка на сообщение
Поделиться на других сайтах

пересобрал еще раз модуль, типо как загружается, но все равно СБОЙ.

дальше модули не грузятся

 

<StoreModule store_mysql>

dbuser = stg

rootdbpass = stg

dbname = stg

dbhost = localhost

</StoreModule>

 

полные привелегии для stg на базу

 

2008-12-04 11:45:45 -- Stg v. Stg 2.404

2008-12-04 11:45:45 -- Message queue created successfully. msgKey=5555 msgID=1736704

2008-12-04 11:45:45 -- Timer thread started successfully.

2008-12-04 11:45:46 -- Storage plugin: mysql_store v.0.68-mutex (STG-Web). Loading successfull.

Ссылка на сообщение
Поделиться на других сайтах
пересобрал еще раз модуль, типо как загружается, но все равно СБОЙ.

дальше модули не грузятся

 

<StoreModule store_mysql>

dbuser = stg

rootdbpass = stg

dbname = stg

dbhost = localhost

</StoreModule>

 

полные привелегии для stg на базу

 

2008-12-04 11:45:45 -- Stg v. Stg 2.404

2008-12-04 11:45:45 -- Message queue created successfully. msgKey=5555 msgID=1736704

2008-12-04 11:45:45 -- Timer thread started successfully.

2008-12-04 11:45:46 -- Storage plugin: mysql_store v.0.68-mutex (STG-Web). Loading successfull.

На кодировку похоже.

Проверь настройки.

Ссылка на сообщение
Поделиться на других сайтах

неа, не помогает.

конвертор в sql пишет

 

# ./convertor

main.cpp > 13:49:08 > Start

file_store.cpp > 13:49:08 > FILES_STORE_SETTINGS::ParseSettings

file_store.cpp > 13:49:08 > workDir = /var/stargazer

main.cpp > 13:49:08 > Importing admins:

Ошибка сегментирования

Ссылка на сообщение
Поделиться на других сайтах
неа, не помогает.

конвертор в sql пишет

 

# ./convertor

main.cpp > 13:49:08 > Start

file_store.cpp > 13:49:08 > FILES_STORE_SETTINGS::ParseSettings

file_store.cpp > 13:49:08 > workDir = /var/stargazer

main.cpp > 13:49:08 > Importing admins:

Ошибка сегментирования

Не в конвертере, а в конфигах.

Ссылка на сообщение
Поделиться на других сайтах
конфига конвертера?

или mysqld?

/etc/stargazer/stargazer.conf

<StoreModule store_mysql>
dbuser = user
rootdbpass = pass
dbname = stg
  dbtablecharset = utf8
dbsocket = /var/run/mysqld/mysqld.sock
dbhost = 127.0.0.1
dbport = 3306
dbtimeout = 15
</StoreModule>

Ну и заразом на всяк случай

/var/www/stg-web/includes/config.php

// DATABASE Settings
$sql["host"]   = "localhost";		// адрес сервера MySQL
$sql["base"]   = "stg";			// имя базы данных
$sql["login"]  = "user";		// имя пользователя для доступа к БД
$sql["passwd"] = "pass";		// пароль для доступа к БД
$sql["charset"]= "koi8-r";		// кодировка базы данных
$sql["tbl_config"] = "web_stg_config";	// таблица с константами и настройками

и немножко из мускуля

	character_set_client		latin1
character_set_connection	 latin1
character_set_database	   latin1
character_set_filesystem	 binary
character_set_results   	latin1
character_set_server	  latin1
character_set_system 	utf8
character_sets_dir 		  /usr/share/mysql/charsets/
collation_connection 		latin1_swedish_ci
collation_database 	   latin1_swedish_ci
collation_server 			   latin1_swedish_ci

Вот в таком виде оно работает у меня.

Ссылка на сообщение
Поделиться на других сайтах

спасибо, убрал dbhost вообще и модуль поднялся, вебморда заработала

Осталось сделать так, чтобы не умирал стг при ОнКоннекте

DisabledDetailStat 1 делал

 

LC_ALL=C

export LC_ALL

ulimit -c 10000

тоже

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...