Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

prime_server.cpp:455 proxy_t: bad_function_call #101

Open
kevinkreiser opened this issue Apr 8, 2021 · 22 comments
Open

prime_server.cpp:455 proxy_t: bad_function_call #101

kevinkreiser opened this issue Apr 8, 2021 · 22 comments
Labels

Comments

@kevinkreiser
Copy link
Owner

migrated this issue from: valhalla/valhalla#2985

@bmarcco reported:

When send request to localhost:8002/route?json={"verbose":true,"locations":[{"lat":42.358528,"lon":-83.271400},{"lat":42.996613,"lon":-78.749855}],"costing":"bicycle","costing_options":{"bicycle":{"bicycle_type":"road"}},"directions_options":{"units":"miles"},"id":"12abc3afe23984fe"}

I get an error "[ERROR] src/prime_server.cpp:455 proxy_t: bad_function_call"

@kevinkreiser
Copy link
Owner Author

looks like somehow the choose functor gets called even when its not set (the default)

This was referenced Apr 14, 2021
@chaitu2chowdary
Copy link

HI @kevinkreiser
I have configured valhalla and could not use it. Is there a workaround for this issue?
Thank you.

@kevinkreiser
Copy link
Owner Author

kevinkreiser commented Apr 14, 2021

@chaitu2chowdary Since I have you here what platform are you on? I can't reproduce it on mine or in CI. I'm wondering if somehow std::function::operator bool() is broken on certain implementations or something? maybe the default parameter is somehow undefined behavior?

@bmarcco
Copy link

bmarcco commented Apr 14, 2021

Hi, @chaitu2chowdary in the first attempt, I followed the instructions for installing the prime server from https://gis-ops.com/valhalla-part-1-how-to-install-on-ubuntu/, but after that I installed the prime server following the instructions from https://github.com/kevinkreiser/prime_server and now it works. I use ubuntu 20.0.4.

@chaitu2chowdary
Copy link

chaitu2chowdary commented Apr 14, 2021

Hi @kevinkreiser
I am on aws ubuntu 20.0.4. it is a 4gb ram instance.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Codename: focal

when I run 'make test -j8' command, I have some failed tests.

PASS: test/zmq
./test-driver: line 107: 32897 Alarm clock             "$@" > $log_file 2>&1
FAIL: test/interrupt
./test-driver: line 107: 32889 Alarm clock             "$@" > $log_file 2>&1
FAIL: test/shaping
./test-driver: line 107: 32871 Alarm clock             "$@" > $log_file 2>&1
FAIL: test/netstring
./test-driver: line 107: 32888 Alarm clock             "$@" > $log_file 2>&1
FAIL: test/http
============================================================================
Testsuite summary for prime_server 0.7.0
============================================================================
# TOTAL: 5
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  4
# XPASS: 0
# ERROR: 0
============================================================================
See ./test-suite.log
Please report to https://github.com/kevinkreiser/prime_server/issues
============================================================================
make[2]: *** [Makefile:1330: test-suite.log] Error 1
make[2]: Leaving directory '/root/prime_server'
make[1]: *** [Makefile:1438: check-TESTS] Error 2
make[1]: Leaving directory '/root/prime_server'
make: *** [Makefile:1673: check-am] Error 2

I ignored the test and executed this command 'sudo make install'

make[1]: Entering directory '/root/prime_server'
 /bin/mkdir -p '/usr/local/lib'
 /bin/bash ./libtool   --mode=install /usr/bin/install -c   libprime_server.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libprime_server.so.0.0.0 /usr/local/lib/libprime_server.so.0.0.0
libtool: install: (cd /usr/local/lib && { ln -s -f libprime_server.so.0.0.0 libprime_server.so.0 || { rm -f libprime_server.so.0 && ln -s libprime_server.so.0.0.0 libprime_server.so.0; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libprime_server.so.0.0.0 libprime_server.so || { rm -f libprime_server.so && ln -s libprime_server.so.0.0.0 libprime_server.so; }; })
libtool: install: /usr/bin/install -c .libs/libprime_server.lai /usr/local/lib/libprime_server.la
libtool: install: /usr/bin/install -c .libs/libprime_server.a /usr/local/lib/libprime_server.a
libtool: install: chmod 644 /usr/local/lib/libprime_server.a
libtool: install: ranlib /usr/local/lib/libprime_server.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 /bin/mkdir -p '/usr/local/bin'
  /bin/bash ./libtool   --mode=install /usr/bin/install -c prime_serverd prime_httpd prime_proxyd prime_workerd prime_echod prime_filed '/usr/local/bin'
libtool: install: /usr/bin/install -c .libs/prime_serverd /usr/local/bin/prime_serverd
libtool: install: /usr/bin/install -c .libs/prime_httpd /usr/local/bin/prime_httpd
libtool: install: /usr/bin/install -c .libs/prime_proxyd /usr/local/bin/prime_proxyd
libtool: install: /usr/bin/install -c .libs/prime_workerd /usr/local/bin/prime_workerd
libtool: install: /usr/bin/install -c .libs/prime_echod /usr/local/bin/prime_echod
libtool: install: /usr/bin/install -c .libs/prime_filed /usr/local/bin/prime_filed
 /bin/mkdir -p '/usr/local/include'
 /bin/mkdir -p '/usr/local/include/prime_server'
 /usr/bin/install -c -m 644  prime_server/prime_server.hpp prime_server/zmq_helpers.hpp prime_server/netstring_protocol.hpp prime_server/http_protocol.hpp prime_server/http_util.hpp '/usr/local/include/prime_server'
 /bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 libprime_server.pc '/usr/local/lib/pkgconfig'
make[1]: Leaving directory '/root/prime_server'

image

@chaitu2chowdary
Copy link

Hi, @chaitu2chowdary in the first attempt, I followed the instructions for installing the prime server from https://gis-ops.com/valhalla-part-1-how-to-install-on-ubuntu/, but after that I installed the prime server following the instructions from https://github.com/kevinkreiser/prime_server and now it works. I use ubuntu 20.0.4.

Hi @bmarcco
I did the exact same but no luck.
i have tried to install prime server instructions from the https://github.com/kevinkreiser/prime_server but did not work.

2021/04/14 15:35:44.278582 [ERROR] src/prime_server.cpp:455 proxy_t: bad_function_call

@nilsnolde
Copy link
Contributor

in the first attempt, I followed the instructions for installing the prime server from https://gis-ops.com/valhalla-part-1-how-to-install-on-ubuntu/,

Those instructions don't work for me either anymore, but I'm hitting #100 with my autoconf 1.71-1 on arch linux.. So, when you followed our tutorial @bmarcco, you got the prime_server.cpp:455 proxy_t: bad_function_call error, but it worked when you followed kevin's own instructions?

Never really investigated #100 tbh.. I chickened out on the CMake route:

cd prime_server
cmake -B build .
cmake --build build
# if you want build the test:
make -C build test
sudo make -C build install

@chaitu2chowdary
Copy link

chaitu2chowdary commented Apr 15, 2021

in the first attempt, I followed the instructions for installing the prime server from https://gis-ops.com/valhalla-part-1-how-to-install-on-ubuntu/,

Those instructions don't work for me either anymore, but I'm hitting #100 with my autoconf 1.71-1 on arch linux.. So, when you followed our tutorial @bmarcco, you got the prime_server.cpp:455 proxy_t: bad_function_call error, but it worked when you followed kevin's own instructions?

Never really investigated #100 tbh.. I chickened out on the CMake route:

cd prime_server
cmake -B build .
cmake --build build
# if you want build the test:
make -C build test
sudo make -C build install

With this, i am able to test the build with 100% pass results.
but when i run the following command I got errors.
command
time prime_serverd 1000000 1
errors

2021/04/15 06:57:30.546826 [ERROR] src/prime_server.cpp:455 proxy_t: bad_function_call
2021/04/15 06:57:30.546837 [ERROR] src/prime_server.cpp:455 proxy_t: bad_function_call
2021/04/15 06:57:30.546849 [ERROR] src/prime_server.cpp:455 proxy_t: bad_function_call

@nilsnolde
Copy link
Contributor

nilsnolde commented Apr 15, 2021

Hm.. I just tried it again, both cmake and autotools on a 20.04 docker container with a freshly updated ubuntu image. Both scenarios work for me (if I don't forget to add usr/local/lib to LD_LIBRARY_PATH or install prime_server to /usr)! Very curious yours doesn't..

You're on WSL2 (Linux for Windows) or smth?

@chaitu2chowdary
Copy link

chaitu2chowdary commented Apr 15, 2021

@nilsnolde
I am on aws ubuntu 20.0.4. it is a 4gb ram instance.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04

I have installed prime_server in the root folder
am I missing something here?
I have tried in two different instances both had the same error!

@nilsnolde
Copy link
Contributor

I have the exact same OS here in docker and it all worked fine.. No idea tbh..

@chaitu2chowdary
Copy link

chaitu2chowdary commented Apr 15, 2021

@nilsnolde Here is the results when i run 'sudo make -C build install'

make: Entering directory '/root/prime_server/build'
make[1]: Entering directory '/root/prime_server/build'
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 21%] Built target prime_server
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 28%] Built target prime_echod
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 35%] Built target prime_filed
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 42%] Built target prime_serverd
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 50%] Built target prime_httpd
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 57%] Built target interrupt
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 64%] Built target http
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 71%] Built target netstring
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 78%] Built target prime_workerd
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 85%] Built target shaping
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[ 92%] Built target prime_proxyd
make[2]: Entering directory '/root/prime_server/build'
make[2]: Leaving directory '/root/prime_server/build'
[100%] Built target zmq
make[1]: Leaving directory '/root/prime_server/build'
Install the project...
-- Install configuration: "Release"
-- Up-to-date: /usr/local/lib/libprime_server.so.0.7.0
-- Up-to-date: /usr/local/lib/libprime_server.so.0
-- Up-to-date: /usr/local/lib/libprime_server.so
-- Up-to-date: /usr/local/include/prime_server/prime_server.hpp
-- Up-to-date: /usr/local/include/prime_server/http_util.hpp
-- Up-to-date: /usr/local/include/prime_server/netstring_protocol.hpp
-- Up-to-date: /usr/local/include/prime_server/zmq_helpers.hpp
-- Up-to-date: /usr/local/include/prime_server/http_protocol.hpp
-- Up-to-date: /usr/local/bin/prime_echod
-- Up-to-date: /usr/local/bin/prime_filed
-- Up-to-date: /usr/local/bin/prime_httpd
-- Up-to-date: /usr/local/bin/prime_serverd
-- Up-to-date: /usr/local/bin/prime_proxyd
-- Up-to-date: /usr/local/bin/prime_workerd
-- Up-to-date: /usr/local/lib/pkgconfig/libprime_server.pc
make: Leaving directory '/root/prime_server/build'

image
image

@kevinkreiser
Copy link
Owner Author

kevinkreiser commented Apr 15, 2021

@chaitu2chowdary what is the result of ldd /usr/local/lib/libprime_server.so.0.7.0?

the ppa version of the library shows:

root@31ca0df872aa:/# ldd /usr/lib/x86_64-linux-gnu/libprime_server.so
	linux-vdso.so.1 (0x00007ffdb25ec000)
	libzmq.so.5 => /lib/x86_64-linux-gnu/libzmq.so.5 (0x00007fde67227000)
	libczmq.so.4 => /lib/x86_64-linux-gnu/libczmq.so.4 (0x00007fde671b9000)
	libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fde67128000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fde66f47000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fde66d55000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fde66d3a000)
	libsodium.so.23 => /lib/x86_64-linux-gnu/libsodium.so.23 (0x00007fde66ce0000)
	libpgm-5.2.so.0 => /lib/x86_64-linux-gnu/libpgm-5.2.so.0 (0x00007fde66c91000)
	libnorm.so.1 => /lib/x86_64-linux-gnu/libnorm.so.1 (0x00007fde66b36000)
	libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fde66ae9000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fde66ac6000)
	libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fde66abd000)
	libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fde66a0c000)
	libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007fde669e3000)
	libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007fde669c2000)
	librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007fde669a2000)
	libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x00007fde66934000)
	libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007fde66921000)
	libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fde6688c000)
	libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fde665b6000)
	libldap_r-2.4.so.2 => /lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007fde66560000)
	liblber-2.4.so.2 => /lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007fde6654f000)
	libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fde66541000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fde66525000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fde663d4000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fde6731b000)
	libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fde662f7000)
	libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fde662c6000)
	libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fde662bf000)
	libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fde662b0000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fde662a3000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fde6627a000)
	liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007fde66259000)
	libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fde6613b000)
	libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007fde65fb9000)
	libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fde65de3000)
	libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007fde65da9000)
	libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007fde65d6f000)
	libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fde65ceb000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fde65ce5000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fde65cc9000)
	libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fde65caa000)
	libgssapi.so.3 => /lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007fde65c65000)
	libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fde65c42000)
	libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fde65c3b000)
	libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fde65c18000)
	libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fde65ae2000)
	libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fde65aca000)
	libheimntlm.so.0 => /lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007fde65abe000)
	libkrb5.so.26 => /lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007fde65a2b000)
	libasn1.so.8 => /lib/x86_64-linux-gnu/libasn1.so.8 (0x00007fde65984000)
	libhcrypto.so.4 => /lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007fde6594c000)
	libroken.so.18 => /lib/x86_64-linux-gnu/libroken.so.18 (0x00007fde65931000)
	libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007fde65925000)
	libwind.so.0 => /lib/x86_64-linux-gnu/libwind.so.0 (0x00007fde658fb000)
	libheimbase.so.1 => /lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007fde658e9000)
	libhx509.so.5 => /lib/x86_64-linux-gnu/libhx509.so.5 (0x00007fde6589b000)
	libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fde65770000)
	libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fde65735000)

@chaitu2chowdary
Copy link

@kevinkreiser
hi kevin
here is the result of 'ldd /usr/local/lib/libprime_server.so.0.7.0'

 linux-vdso.so.1 (0x00007ffec41a6000)
        libzmq.so.5 => /usr/lib/x86_64-linux-gnu/libzmq.so.5 (0x00007fbbd08ba000)
        libczmq.so.4 => /usr/lib/x86_64-linux-gnu/libczmq.so.4 (0x00007fbbd084c000)
        libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fbbd07bb000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fbbd05da000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fbbd05bf000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbbd03cd000)
        libsodium.so.23 => /usr/lib/x86_64-linux-gnu/libsodium.so.23 (0x00007fbbd0373000)
        libpgm-5.2.so.0 => /usr/lib/x86_64-linux-gnu/libpgm-5.2.so.0 (0x00007fbbd0324000)
        libnorm.so.1 => /usr/lib/x86_64-linux-gnu/libnorm.so.1 (0x00007fbbd01c9000)
        libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fbbd017c000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbbd0159000)
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fbbd0150000)
        libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fbbd009f000)
        libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007fbbd0076000)
        libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x00007fbbd0055000)
        librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007fbbd0035000)
        libssh.so.4 => /usr/lib/x86_64-linux-gnu/libssh.so.4 (0x00007fbbcffc7000)
        libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5 (0x00007fbbcffb4000)
        libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fbbcff1f000)
        libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fbbcfc49000)
        libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007fbbcfbf3000)
        liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007fbbcfbe2000)
        libbrotlidec.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fbbcfbd4000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fbbcfbb8000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbbcfa67000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fbbd09bf000)
        libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fbbcf98a000)
        libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fbbcf959000)
        libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fbbcf952000)
        libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fbbcf943000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fbbcf936000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fbbcf90d000)
        liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007fbbcf8ec000)
        libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fbbcf7ce000)
        libunistring.so.2 => /usr/lib/x86_64-linux-gnu/libunistring.so.2 (0x00007fbbcf64c000)
        libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fbbcf476000)
        libhogweed.so.5 => /usr/lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007fbbcf43d000)
        libnettle.so.7 => /usr/lib/x86_64-linux-gnu/libnettle.so.7 (0x00007fbbcf403000)
        libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fbbcf37f000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbbcf379000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fbbcf35d000)
        libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fbbcf33e000)
        libgssapi.so.3 => /usr/lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007fbbcf2f9000)
        libbrotlicommon.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fbbcf2d6000)
        libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fbbcf2cf000)
        libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fbbcf2ac000)
        libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fbbcf176000)
        libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fbbcf15e000)
        libheimntlm.so.0 => /usr/lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007fbbcf152000)
        libkrb5.so.26 => /usr/lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007fbbcf0bf000)
        libasn1.so.8 => /usr/lib/x86_64-linux-gnu/libasn1.so.8 (0x00007fbbcf018000)
        libhcrypto.so.4 => /usr/lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007fbbcefe0000)
        libroken.so.18 => /usr/lib/x86_64-linux-gnu/libroken.so.18 (0x00007fbbcefc5000)
        libffi.so.7 => /usr/lib/x86_64-linux-gnu/libffi.so.7 (0x00007fbbcefb9000)
        libwind.so.0 => /usr/lib/x86_64-linux-gnu/libwind.so.0 (0x00007fbbcef8f000)
        libheimbase.so.1 => /usr/lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007fbbcef7d000)
        libhx509.so.5 => /usr/lib/x86_64-linux-gnu/libhx509.so.5 (0x00007fbbcef2f000)
        libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fbbcee04000)
        libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fbbcedc9000)

@kevinkreiser
Copy link
Owner Author

ok that was a deadend, sorry about that...

honestly i know how to fix it (change the default parameter back to being a lambda) but i dont understand how some platforms dont know they dont have a callable object associated with the std::function. that seems like the implementation of the stl api is broken on some platforms?

@chaitu2chowdary
Copy link

chaitu2chowdary commented Apr 15, 2021

@kevinkreiser
Can you please provide me the fix?

I just wanted to install valhalla and use its routing services in my node server.

here is my g++ version
g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

@kevinkreiser
Copy link
Owner Author

see this comment for how to work around this issue: https://github.com/kevinkreiser/prime_server/pull/97/files#r614292607

@chaitu2chowdary
Copy link

@kevinkreiser
I have updated the change mentioned by you.
Unfortunately, the same error appears.
image
image

@acartero
Copy link

Hi, I encountered the same problem with the following configuration :
Ubuntu 20.04 on a Windows 10 Hyper-V Virtual Machine

Note : the problem prevents me from using Valhalla, but I can also reproduce it with the prime_server demo (prime_serverd tcp://*:8002 & + curl ...

As a workaround, I git checkout'd the 0.7.0 tag : both the prime_serverd demo and Valhalla are now working.

@chaitu2chowdary
Copy link

see this comment for how to work around this issue: https://github.com/kevinkreiser/prime_server/pull/97/files#r614292607

With this i still have the error(src/prime_server.cpp:557 worker_t: bad_function_call) but it is working now :)

Thanks, @kevinkreiser for your support.

@ahmadshiddiqn
Copy link

ahmadshiddiqn commented Jun 8, 2021

see this comment for how to work around this issue: https://github.com/kevinkreiser/prime_server/pull/97/files#r614292607

With this i still have the error(src/prime_server.cpp:557 worker_t: bad_function_call) but it is working now :)

Thanks, @kevinkreiser for your support.

Hi @chaitu2chowdary, I also encountered the same problem. after following all above workaround, I'm not getting [ERROR] src/prime_server.cpp:455 proxy_t: bad_function_call when trying time prime_serverd 1000000 1, but when I'm trying to curl, Valhalla still gives me the error. Were you trying other workaround? What made it work on your end?

This is the ubuntu version I use:

Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal 

Thank you!

edit:

Note : the problem prevents me from using Valhalla, but I can also reproduce it with the prime_server demo (prime_serverd tcp://*:8002 & + curl ...

When I try this, it gives me no error. But if valhalla_service is running and I try to fetch something from Valhalla, the log print the error src/prime_server.cpp:455 proxy_t: bad_function_call

I'm not that used to Linux environment, I've sudo make install several times both prime_server and valhalla. Is there an authentic way to redo the whole process from start other than running through the steps again (using different configuration each time)? I might want to try clean install of 0.7.0 tags of prime server and valhalla.

edit 2:
I fix it by manually remove valhalla_service by using sudo rm /usr/bin/valhalla_service /usr/local/bin/valhalla_service and sudo make install again from 0.7.0 tags. I know something doesn't sit right when 'sudo make install' output is "up-to-date" while something obviously has been changed. i know make behavior doesn't detect if a library being used has new change or not, but i dont know how to clean install, haha.

anyway thanks for the thread, 0.7.0 tags (the revert to lambda function) fix this for me.

@rooVV
Copy link

rooVV commented Aug 4, 2021

Hi @ahmadshiddiqn,
I have the same issue that you had (no problem with running time prime_serverd 1000000 1 but the bad_function_call when trying to curl). Since it seems that you managed to fix it, I tried to go through the same steps as you did, based on your comment. However, it appears that the 0.7.0 tag on prime_server is already the latest one (which would explain the up-to-date though it doesn't make much sense to me) and I can't seem to find a 0.7.0 tag for valhalla. Can you confirm that you managed to git checkout tags/0.7.0 for valhalla? I'm really struggling on this one.
Thanks

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

No branches or pull requests

7 participants