Comments (12)
might need to add dll map to etc/mono/config
my setup prefix is /opt/mono so i edit /opt/mono/etc/mono/config an add this
<configuration>
...
<dllmap dll="libhfc-native" target="/opt/mono/lib64/libhfc-native.so" os="!windows"/>
<dllmap dll="libhfc-native" target="/opt/mono/lib64/libhfc-native.so" os="!windows"/>
</configuration>
from hyperfastcgi.
Where is mono installed? You can check it with ldconfig -p |grep libmono
command. If mono is installed in other directory than /usr
, for example /usr/local
then you should pass it as prefix when compile hyperfastcgi ./autogen.sh --prefix=/usr/local
from hyperfastcgi.
root@p-dev:/tmp# ldconfig -p |grep libmono
libmonosgen-2.0.so.1 (libc6,x86-64) => /usr/lib/libmonosgen-2.0.so.1
libmonosgen-2.0.so (libc6,x86-64) => /usr/lib/libmonosgen-2.0.so
libmonoboehm-2.0.so.1 (libc6,x86-64) => /usr/lib/libmonoboehm-2.0.so.1
libmono-profiler-log.so.0 (libc6,x86-64) => /usr/lib/libmono-profiler-log.so.0
libmono-profiler-log.so (libc6,x86-64) => /usr/lib/libmono-profiler-log.so
libmono-profiler-iomap.so.0 (libc6,x86-64) => /usr/lib/libmono-profiler-iomap.so.0
libmono-profiler-iomap.so (libc6,x86-64) => /usr/lib/libmono-profiler-iomap.so
libmono-profiler-aot.so.0 (libc6,x86-64) => /usr/lib/libmono-profiler-aot.so.0
libmono-profiler-aot.so (libc6,x86-64) => /usr/lib/libmono-profiler-aot.so
It seems like since both are in /usr/lib, it should "just work" right?
from hyperfastcgi.
I also tried adding the following to my /etc/mono/config, with no change in behavior:
<dllmap dll="libhfc-native" target="/usr/lib/libhfc-native.so" os="!windows"/>
<dllmap dll="libhfc-native.dll" target="/usr/lib/libhfc-native.so" os="!windows"/>
from hyperfastcgi.
Can you show output of ldd -r /usr/lib/libhfc-native.so
?
from hyperfastcgi.
/usr/lib/libhfc-native.so: /usr/lib/libmonoboehm-2.0.so.1: no version information available (required by /usr/lib/libhfc-native.so)
linux-vdso.so.1 => (0x00007ffd477f6000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f8812efd000)
libevent_pthreads-2.0.so.5 => not found
libevent-2.0.so.5 => not found
libmonoboehm-2.0.so.1 => /usr/lib/libmonoboehm-2.0.so.1 (0x00007f8812942000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8812724000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f881235e000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f8812120000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8811e1a000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8811c11000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8811a0d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f88117f7000)
/lib64/ld-linux-x86-64.so.2 (0x0000560cf9136000)
undefined symbol: bufferevent_read (/usr/lib/libhfc-native.so)
undefined symbol: bufferevent_set_timeouts (/usr/lib/libhfc-native.so)
undefined symbol: event_base_new (/usr/lib/libhfc-native.so)
undefined symbol: event_base_set (/usr/lib/libhfc-native.so)
undefined symbol: bufferevent_socket_new (/usr/lib/libhfc-native.so)
undefined symbol: bufferevent_write_buffer (/usr/lib/libhfc-native.so)
undefined symbol: event_base_loopexit (/usr/lib/libhfc-native.so)
undefined symbol: event_del (/usr/lib/libhfc-native.so)
undefined symbol: evthread_use_pthreads (/usr/lib/libhfc-native.so)
undefined symbol: evbuffer_free (/usr/lib/libhfc-native.so)
undefined symbol: bufferevent_get_output (/usr/lib/libhfc-native.so)
undefined symbol: bufferevent_base_set (/usr/lib/libhfc-native.so)
undefined symbol: event_add (/usr/lib/libhfc-native.so)
undefined symbol: evbuffer_unlock (/usr/lib/libhfc-native.so)
undefined symbol: event_base_free (/usr/lib/libhfc-native.so)
undefined symbol: evbuffer_add (/usr/lib/libhfc-native.so)
undefined symbol: event_base_get_method (/usr/lib/libhfc-native.so)
undefined symbol: evbuffer_get_length (/usr/lib/libhfc-native.so)
undefined symbol: event_set (/usr/lib/libhfc-native.so)
undefined symbol: bufferevent_free (/usr/lib/libhfc-native.so)
undefined symbol: evbuffer_new (/usr/lib/libhfc-native.so)
undefined symbol: event_base_dispatch (/usr/lib/libhfc-native.so)
undefined symbol: bufferevent_enable (/usr/lib/libhfc-native.so)
undefined symbol: bufferevent_setcb (/usr/lib/libhfc-native.so)
undefined symbol: event_get_version (/usr/lib/libhfc-native.so)
undefined symbol: evbuffer_enable_locking (/usr/lib/libhfc-native.so)
undefined symbol: evbuffer_lock (/usr/lib/libhfc-native.so)
from hyperfastcgi.
You need to install libevent2 (it's libevent-dev
package on Ubuntu system) and then recompile
from hyperfastcgi.
I wonder why is mono linked to libmonoboehm-2.0.so.1
? It should be linked to libmonosgen
What operating system/mono version do you use? It's not related to the issue, just interesting.
from hyperfastcgi.
Ok, i'll install libevent2 and rebuild.
would that GC linking matter on the box it was built on, or running on? Box it is running on is as follows:
root@p-dev:/usr/lib# mono -V
Mono JIT compiler version 4.6.1 (Stable 4.6.1.5/ef43c15 Wed Oct 12 09:10:37 UTC 2016)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen
from hyperfastcgi.
Actually, it looks like just installing libevent-dev package on the web server allows it to run with the Native listener!
Now i just need to do some performance/stability testing to see how this new version works. :)
from hyperfastcgi.
Library is linked on the machine where you build. Boehm garbage collector is deprecated and should be avoided to use due to heap fragmentation issues. You can check on your web server which garbage collector library your mono installation uses via ls -al /usr/lib/libmono-2*
command. Files should point to libmonosgen-2.0.so*
.
I highly recommend to rebuild HyperFastCgi directly on your web server or on the server with the same configuration of mono and other dependend libraries installation.
from hyperfastcgi.
i# ls -al /usr/lib/libmono-2*
lrwxrwxrwx 1 root root 17 Oct 12 02:21 /usr/lib/libmono-2.0.a -> libmonosgen-2.0.a
lrwxrwxrwx 1 root root 18 Oct 12 02:21 /usr/lib/libmono-2.0.so -> libmonosgen-2.0.so
lrwxrwxrwx 1 root root 20 Oct 12 02:21 /usr/lib/libmono-2.0.so.1 -> libmonosgen-2.0.so.1
lrwxrwxrwx 1 root root 24 Oct 12 02:21 /usr/lib/libmono-2.0.so.1.0.0 -> libmonosgen-2.0.so.1.0.0
Ok, yeah i'll rebuild after upgrading mono on our build box and give it another try.
from hyperfastcgi.
Related Issues (20)
- Seeing requests with about 46k of request body data fail with 502 under mono-server-hyperfastcgi4 HOT 3
- Will HyperFastCgi support .NET Core (ASP .NET 5)? HOT 1
- hyperfastcgi stop working but not crash HOT 11
- compile agains mono 4.8.0 fail HOT 4
- 502 with Nginx HOT 5
- segfault after interrupting hung process with /stoppable=true HOT 2
- Weird Exception while initOnce HOT 1
- Similar issue with #67, 502 after 50k requests HOT 4
- Hyperfastcgi crashing HOT 4
- HyperFastCgi crashes if there is nothing in the webapp folder HOT 1
- configfile difficult to use HOT 1
- fcgi-transport.c:444: parse_params(): Can't find app! HOST='my.host' port=443 path='/index.aspx' HOT 4
- How can I set the umask for the process?
- No package 'mono-2' found, хотя mono установлен HOT 1
- Configuration location for ApplicationPoolRecycling HOT 2
- Error calling 'bufferevent_free' twice in NativeTransport on request end
- Probably race condition? HOT 1
- hyperfastcgi in nginx default server
- Managed Listener leaks sockets
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hyperfastcgi.