Skip to content
This repository has been archived by the owner on Nov 4, 2024. It is now read-only.

Unable to compile using USE_NVM=yes AEP_COW=yes #8

Open
adnavare opened this issue Apr 10, 2019 · 12 comments
Open

Unable to compile using USE_NVM=yes AEP_COW=yes #8

adnavare opened this issue Apr 10, 2019 · 12 comments
Assignees

Comments

@adnavare
Copy link

Hi Folks,

I am trying to use pmem-redis with Kubernetes containers and upon running 'make USE_NVM=yes AEP_COW=yes' I see it failing because of dependencies not getting met. Here is the error

cc: error: ../deps/pmdk/src/nondebug/libpmem.a: No such file or directory cc: error: ../deps/memkind/jemalloc/obj/lib/libjemalloc.a: No such file or directory cc: error: ../deps/memkind/.libs/libmemkind.a: No such file or directory cc: error: ../deps/jemallocat/lib/libjemallocat.a: No such file or directory cc: error: ../deps/aofguard/lib/libaofguard.a: No such file or directory Makefile:244: recipe for target 'redis-server' failed make[1]: *** [redis-server] Error 1 make[1]: Leaving directory '/home/labuser/pmem-redis/src' Makefile:8: recipe for target 'all' failed make: *** [all] Error 2

I followed the steps in README:

  • git submodule init
  • git submodule update
  • Install pre-requisite (autoconf, autolib, ndctl, etc)

OS: Ubuntu 18.04
There are two regions, each having 24 namespaces.

Please can you provide me what I am doing wrong? Thanks in advance

@qzheng527
Copy link

I met similar issue, when compiled with "make USE_NVM=yes" I got below errors.

gcc: error: ../deps/pmdk/src/nondebug/libpmem.a: No such file or directory
gcc: error: ../deps/memkind/jemalloc/obj/lib/libjemalloc.a: No such file or directory
gcc: error: ../deps/memkind/.libs/libmemkind.a: No such file or directory
gcc: error: ../deps/jemallocat/lib/libjemallocat.a: No such file or directory
gcc: error: ../deps/aofguard/lib/libaofguard.a: No such file or directory
make[1]: *** [Makefile:244: redis-server] Error 1
make[1]: Leaving directory '/home/c

@adnavare
Copy link
Author

Yes these errors look same. Please post if you found a way to fix it. Thanks

@LynnaPan LynnaPan assigned LynnaPan, guoanwu and peifengsi and unassigned LynnaPan Apr 19, 2019
@guoanwu
Copy link
Contributor

guoanwu commented Apr 19, 2019

check with the clearlinux with qzheng527 machine, maybe caused by you didn't finish your compile normal first time(for example, ctrl+c break the compile) and then, the deps will not build again. Please "make distclean;make USE_NVM=yes AEP_COW=yes -j 55"; currently on the clearlinux OS, the compile passed.

@adnavare , please use the command "make distclean" first and then compile again.

@guoanwu
Copy link
Contributor

guoanwu commented Apr 19, 2019

gcc -c -o pmemobjfs.o -std=gnu99 -ggdb -Wall -Werror -Wmissing-prototypes -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -I../tree_map -I../map -DFUSE_USE_VERSION=28 -DUSE_CTREE -I../../../include -I. -I../../../examples pmemobjfs.c
pmemobjfs.c: In function ‘pmemobjfs_tx_ioctl’:
pmemobjfs.c:2381:2: error: ‘strncat’ specified bound 11 equals source length [-Werror=stringop-overflow=]
strncat(path, PMEMOBJFS_TMP_TEMPLATE, tmpllen);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

It is a error when compile the PMDK, it need to be fixed from PMDK. But so far, you can just
update pmdk/src/examples/Makefile.inc and remove -Werror. I will push PMDK owner to have a fix.

@adnavare
Copy link
Author

Where should I look for this? I don't see this error on the console. Should I be checking any other log file? Or kubelet logs? I don't think so kubernetes node is yet aware of of Redis server running so I believe Kubelet won't tell me anything.

@adnavare
Copy link
Author

I see this error at the very beginning after I run make command

MAKE aofguard
cd aofguard && make
make[3]: Entering directory '/home/labuser/DCPMM-Redis/deps/linenoise'
cc -Wall -Os -g -c linenoise.c
make[3]: Entering directory '/home/labuser/DCPMM-Redis/deps/pmdk'
make[3]: Entering directory '/home/labuser/DCPMM-Redis/deps/lua/src'
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lapi.o lapi.c
src/common.inc:57: *** pkg-config not found. Stop.
make[3]: Leaving directory '/home/labuser/DCPMM-Redis/deps/pmdk'
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lcode.o lcode.c
make[3]: Entering directory '/home/labuser/DCPMM-Redis/deps/jemallocat'
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
Makefile:80: recipe for target 'pmdk' failed
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o ldebug.o ldebug.c
make[2]: *** [pmdk] Error 2

In that I see target pmdk failed. Is that the same error you were referring to? I have bold the error above.

@adnavare
Copy link
Author

Also I see it is not using g++, will that be a problem?

@guoanwu
Copy link
Contributor

guoanwu commented Apr 20, 2019

@adnavare, from your log, you need to install the pkg-config tool. See the PMDK github page, the pmdk depend on:

Linux
You will need to install the following required packages on the build system:
autoconf
pkg-config
libndctl-devel (v60.1 or later)1
libdaxctl-devel (v60.1 or later)

@adnavare
Copy link
Author

Yes you are right. It was failing because of missing pkg-config. I didn't check PMDK github page for the dependencies. It passed the previous pkg-config error and right now it is failing because of missing libnuma required for memkind. I will install that as well and other dependencies that are needed. I am not checking dependencies for individual packages and I think that's causing the compilation to fail due to missing libraries.

@adnavare
Copy link
Author

The compilation worked. Thanks for all your inputs. The reason seems to be because of dependencies in pmdk and memkind repos not getting met. After installing those dependencies the compilation worked like charm. Also g++ needs to be installed.

@BrytonLee
Copy link
Contributor

I am sorry to see that you guys already handled the same problem as I met. I fixed it from scratch, the good thing is I submit my solution in my repo. Please consider to merge my pull request to avoid same problem happens again. Appreciate it.

@peifengsi
Copy link
Contributor

@BrytonLee Could you please kindly submit a PR?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants