osdldbt / dbt5

Database Test 5: Fair Use TPC Benchmark(TM) E
Artistic License 2.0
1 stars 10 forks source link

Error during egen build on IBM power ppc64le #13

Closed kemparaju closed 4 months ago

kemparaju commented 6 months ago

dbt5-build-egen tool is throwing error while building the egen. Followed instructions in https://github.com/osdldbt/dbt5/blob/main/doc/user-guide.rst to build the tool

dbt5-build-egen /tmp/egen ERROR: missing 'series' file in '/usr/share/dbt5/patches', try "dbt5-build-egen --help" for more information.

tried another way but I see different error

dbt5-build-egen --build-only /tmp/egen

`../src/../inc/TableTemplate.h: In instantiation of 'void TPCE::TableTemplate::ClearRecord() [with T = TPCE::SECURITY_ROW]': ../src/../inc/SecurityTable.h:143:25: required from here ../src/../inc/TableTemplate.h:144:32: warning: 'void memset(void, int, size_t)' clearing an object of type 'struct TPCE::SECURITY_ROW' with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess] void ClearRecord() { memset(&m_row, 0, sizeof(m_row)); }


In file included from ../src/../inc/EGenTables_common.h:58,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETradingFloor.h:50,
                 from ../src/MEETradingFloor.cpp:42:
../src/../inc/TableRows.h:302:16: note: 'struct TPCE::SECURITY_ROW' declared here
 typedef struct SECURITY_ROW
                ^~~~~~~~~~~~
In file included from ../src/MEETickerTape.cpp:42:
../src/../inc/MEETickerTape.h: In constructor 'TPCE::CMEETickerTape::CMEETickerTape(TPCE::CMEESUTInterface*, TPCE::CMEEPriceBoard*, TPCE::CDateTime*, TPCE::CDateTime*, const TPCE::DataFileManager&)':
../src/../inc/MEETickerTape.h:81:25: warning: 'TPCE::CMEETickerTape::m_pCurrentTime' will be initialized after [-Wreorder]
     CDateTime*          m_pCurrentTime;
                         ^~~~~~~~~~~~~~
In file included from ../src/MEETickerTape.cpp:42:
../src/../inc/MEETickerTape.h:70:36: warning:   'const StatusTypeDataFile_t& TPCE::CMEETickerTape::m_StatusType' [-Wreorder]
     const StatusTypeDataFile_t&    m_StatusType;
                                    ^~~~~~~~~~~~
../src/MEETickerTape.cpp:84:1: warning:   when initialized here [-Wreorder]
 CMEETickerTape::CMEETickerTape( CMEESUTInterface* pSUT, CMEEPriceBoard* pPriceBoard, CDateTime* pBaseTime, CDateTime* pCurrentTime, const DataFileManager &dfm )
 ^~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_common.h:59,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETradingFloor.h:50,
                 from ../src/MEETradingFloor.cpp:42:
../src/../inc/TableTemplate.h: In instantiation of 'void TPCE::TableTemplate<T>::ClearRecord() [with T = TPCE::DAILY_MARKET_GEN_ROW]':
../src/../inc/DailyMarketTable.h:138:25:   required from here
../src/../inc/TableTemplate.h:144:32: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'struct TPCE::DAILY_MARKET_GEN_ROW' with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess]
     void ClearRecord() { memset(&m_row, 0, sizeof(m_row)); }
                          ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_stdafx.h:71,
                 from ../src/../inc/MEEPriceBoard.h:47,
                 from ../src/../inc/MEETradingFloor.h:53,
                 from ../src/MEETradingFloor.cpp:42:
../src/../inc/DailyMarketTable.h:67:20: note: 'struct TPCE::DAILY_MARKET_GEN_ROW' declared here
     typedef struct DAILY_MARKET_GEN_ROW
                    ^~~~~~~~~~~~~~~~~~~~
In file included from ../src/MEETickerTape.cpp:42:
../src/../inc/MEETickerTape.h: In constructor 'TPCE::CMEETickerTape::CMEETickerTape(TPCE::CMEESUTInterface*, TPCE::CMEEPriceBoard*, TPCE::CDateTime*, TPCE::CDateTime*, TPCE::RNGSEED, const TPCE::DataFileManager&)':
../src/../inc/MEETickerTape.h:81:25: warning: 'TPCE::CMEETickerTape::m_pCurrentTime' will be initialized after [-Wreorder]
     CDateTime*          m_pCurrentTime;
                         ^~~~~~~~~~~~~~
In file included from ../src/MEETickerTape.cpp:42:
../src/../inc/MEETickerTape.h:70:36: warning:   'const StatusTypeDataFile_t& TPCE::CMEETickerTape::m_StatusType' [-Wreorder]
     const StatusTypeDataFile_t&    m_StatusType;
                                    ^~~~~~~~~~~~
../src/MEETickerTape.cpp:100:1: warning:   when initialized here [-Wreorder]
 CMEETickerTape::CMEETickerTape( CMEESUTInterface* pSUT, CMEEPriceBoard* pPriceBoard, CDateTime* pBaseTime, CDateTime* pCurrentTime, RNGSEED RNGSeed, const DataFileManager &dfm )
 ^~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_common.h:59,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETradingFloor.h:50,
                 from ../src/MEETradingFloor.cpp:42:
../src/../inc/TableTemplate.h: In instantiation of 'void TPCE::TableTemplate<T>::ClearRecord() [with T = TPCE::NEWS_ITEM_AND_XREF_ROW]':
../src/../inc/NewsItemAndXRefTable.h:122:25:   required from here
../src/../inc/TableTemplate.h:144:32: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'struct TPCE::NEWS_ITEM_AND_XREF_ROW' with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess]
     void ClearRecord() { memset(&m_row, 0, sizeof(m_row)); }
                          ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_stdafx.h:76,
                 from ../src/../inc/MEEPriceBoard.h:47,
                 from ../src/../inc/MEETradingFloor.h:53,
                 from ../src/MEETradingFloor.cpp:42:
../src/../inc/NewsItemAndXRefTable.h:57:20: note: 'struct TPCE::NEWS_ITEM_AND_XREF_ROW' declared here
     typedef struct NEWS_ITEM_AND_XREF_ROW
                    ^~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_common.h:59,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETradingFloor.h:50,
                 from ../src/MEETradingFloor.cpp:42:
../src/../inc/TableTemplate.h: In instantiation of 'void TPCE::TableTemplate<T>::ClearRecord() [with T = TPCE::LAST_TRADE_ROW]':
../src/../inc/LastTradeTable.h:95:25:   required from here
../src/../inc/TableTemplate.h:144:32: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'struct TPCE::LAST_TRADE_ROW' with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess]
     void ClearRecord() { memset(&m_row, 0, sizeof(m_row)); }
                          ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_common.h:58,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETradingFloor.h:50,
                 from ../src/MEETradingFloor.cpp:42:
../src/../inc/TableRows.h:266:16: note: 'struct TPCE::LAST_TRADE_ROW' declared here
 typedef struct LAST_TRADE_ROW
                ^~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_common.h:59,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETickerTape.h:50,
                 from ../src/MEETickerTape.cpp:42:
../src/../inc/TableTemplate.h: In instantiation of 'void TPCE::TableTemplate<T>::ClearRecord() [with T = TPCE::COMPANY_ROW]':
../src/../inc/CompanyTable.h:126:25:   required from here
../src/../inc/TableTemplate.h:144:32: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'struct TPCE::COMPANY_ROW' with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess]
     void ClearRecord() { memset(&m_row, 0, sizeof(m_row)); }
                          ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_common.h:58,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETickerTape.h:50,
                 from ../src/MEETickerTape.cpp:42:
../src/../inc/TableRows.h:114:16: note: 'struct TPCE::COMPANY_ROW' declared here
 typedef struct COMPANY_ROW
                ^~~~~~~~~~~
In file included from ../src/../inc/EGenTables_common.h:59,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETickerTape.h:50,
                 from ../src/MEETickerTape.cpp:42:
../src/../inc/TableTemplate.h: In instantiation of 'void TPCE::TableTemplate<T>::ClearRecord() [with T = TPCE::FINANCIAL_GEN_ROW]':
../src/../inc/FinancialTable.h:196:25:   required from here
../src/../inc/TableTemplate.h:144:32: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'struct TPCE::FINANCIAL_GEN_ROW' with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess]
     void ClearRecord() { memset(&m_row, 0, sizeof(m_row)); }
                          ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_stdafx.h:64,
                 from ../src/../inc/MEEPriceBoard.h:47,
                 from ../src/../inc/MEETickerTape.h:53,
                 from ../src/MEETickerTape.cpp:42:
../src/../inc/FinancialTable.h:87:20: note: 'struct TPCE::FINANCIAL_GEN_ROW' declared here
     typedef struct FINANCIAL_GEN_ROW
                    ^~~~~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_common.h:59,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETickerTape.h:50,
                 from ../src/MEETickerTape.cpp:42:
../src/../inc/TableTemplate.h: In instantiation of 'void TPCE::TableTemplate<T>::ClearRecord() [with T = TPCE::SECURITY_ROW]':
../src/../inc/SecurityTable.h:143:25:   required from here
../src/../inc/TableTemplate.h:144:32: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'struct TPCE::SECURITY_ROW' with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess]
     void ClearRecord() { memset(&m_row, 0, sizeof(m_row)); }
                          ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_common.h:58,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETickerTape.h:50,
                 from ../src/MEETickerTape.cpp:42:
../src/../inc/TableRows.h:302:16: note: 'struct TPCE::SECURITY_ROW' declared here
 typedef struct SECURITY_ROW
                ^~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_common.h:59,
                 from ../src/../inc/CustomerAccountsAndPermissionsTable.h:44,
                 from ../src/../inc/TxnHarnessStructs.h:48,
                 from ../src/../inc/MEETickerTape.h:50,
                 from ../src/MEETickerTape.cpp:42:
../src/../inc/TableTemplate.h: In instantiation of 'void TPCE::TableTemplate<T>::ClearRecord() [with T = TPCE::DAILY_MARKET_GEN_ROW]':
../src/../inc/DailyMarketTable.h:138:25:   required from here
../src/../inc/TableTemplate.h:144:32: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'struct TPCE::DAILY_MARKET_GEN_ROW' with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess]
     void ClearRecord() { memset(&m_row, 0, sizeof(m_row)); }
                          ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/../inc/EGenTables_stdafx.h:71,
                 from ../src/../inc/MEEPriceBoard.h:47,
                 from ../src/../inc/MEETickerTape.h:53,
                 from ../src/MEETickerTape.cpp:42:
../src/../inc/DailyMarketTable.h:67:20: note: 'struct TPCE::DAILY_MARKET_GEN_ROW' declared here
     typedef struct DAILY_MARKET_GEN_ROW`
markwkm commented 6 months ago

What distro and release version are you using? The egen code can be sensitive to c++ version.

kemparaju commented 6 months ago

We're using RHEL version 8.9 [root@p182n147 ~]# cat /etc/os-release NAME="Red Hat Enterprise Linux" VERSION="8.9 (Ootpa)"

Currently we're using C++ v8.5.0 [root@p182n147 ~]# g++ --version g++ (GCC) 8.5.0 20210514 (Red Hat 8.5.0-20)

markwkm commented 6 months ago

Ah, I didn't read this closely enough while I was on the road. I don't believe this is actually compiler related after all:

ERROR: missing 'series' file in '/usr/share/dbt5/patches', try "dbt5-build-egen --help" for more information.

Barring a problem with the install rules, I'm guessing the kit wasn't installed onto the system. That's ok if you're comfortable editing your PATH environment. So hopefully all you need to do is use --include-dir, --patch-dir and --source-dir, with patches/, src/include and src directories, resp.

kemparaju commented 4 months ago

We're successful in building egen.

When we tried to run the benchmark test

[root@p182n147 run-data]# dbt5 run --tpcetools=/opt/egen -d 600 -u 1 pgsql /tmp/results
# DBT-5

Workload consists of 4 stages:

1. Start of the Brokerage House server
2. Start of the Market Exchange server
3. Test (Start of the Customer Emulator)
4. Processing of results

Results will be found in: /tmp/results

## 1. Starting Brokerage House server

Giving BrokerageHouseMain 1 second to start up.

## 2. Starting Market Exchange server

## 3. Starting Customer driver(s)

* 1 user starting every 1000 milliseconds.

1 user(s) started.

* User ramp up to finish in 2 s.

* Test expected to finish in 600 s.

## 4. Processing data
/root/dbt5/builds/release/dbt5-run: line 703: 3898518 Killed                  /opt/egen/bin/MarketExchangeMain -c 5000 -t 5000 -i /opt/egen/flat_in -o /tmp/results/mee > /tmp/results/mee/mee.out 2>&1
/root/dbt5/builds/release/dbt5-run: line 629: 3898516 Killed                  /opt/egen/bin/BrokerageHouseMain -d dbt5 -o /tmp/results/bh > /tmp/results/bh/bh.out 2>&1

## Primary Metric

7.83 TRTPS

Complete results are in: /tmp/results 

in the above output at 4th stage 2 commands are getting killed. Is it ok to ignore or something is wrong with our configuration?

markwkm commented 4 months ago

Glad to hear it's building successfully again.

The kill messages are expected. It's not elegant for at least a couple of reasons. So there is an opportunity for improvement. :)

Thus if you are getting meaningful results then it's safe to ignore.