Yep, you’re right that’s the root cause. But after trying several times,
it still can’t load any plugins. Do you have any way to load these plugins
manually ? 

 

I wrote an C language file ‘test’, and ran it as ‘sprout’ user. Seems it
works.

root@sprout-1-1pp1p:~# su sprout -c '/var/log/sprout/test
/usr/share/clearwater/sprout/plugins'

Open Directory /usr/share/clearwater/sprout/plugins Error:Success

.

..

sprout_bgcf.so

sprout_icscf.so

sprout_mmtel_as.so

sprout_scscf.so

Open Directory /usr/share/clearwater/sprout/plugins Error:Success

Open Directory /usr/share/clearwater/sprout/plugins Error:Success

root@sprout-1-1pp1p:~#

 

Read source code, the logic is very simple in
https://github.com/Metaswitch/sprout/blob/dev/src/pluginloader.cpp#L68 .
What may cause this issue ? Selinux?? or Filesystem? 

 

>From this page http://linux.die.net/man/3/readdir  : “Currently, only some
file systems (among them: Btrfs, ext2, ext3, and ext4) have full support for
returning the file type in d_type”

 

Currently rhel7 is using xfs as it’s default file system. And the container
is using it !!!

root@sprout-1-1pp1p:~# df -T -h

Filesystem
Type   Size  Used Avail Use% Mounted on

/dev/mapper/docker-253:0-67648440-e939ea7b2b39ce24a000b0e068e6feba0626504abe
909818797e9f48ce7bdd91 xfs    100G  370M  100G   1% /

tmpfs
tmpfs   16G     0   16G   0% /dev

shm
tmpfs   64M     0   64M   0% /dev/shm

tmpfs
tmpfs   16G     0   16G   0% /sys/fs/cgroup

tmpfs
tmpfs   16G   40K   16G   1% /run/secrets

/dev/mapper/rhel_mac002590f16385-root
xfs     45G   29G   17G  64% /etc/hosts

tmpfs
tmpfs   16G  8.0K   16G   1% /run/secrets/kubernetes.io/serviceaccount

tmpfs
tmpfs   16G     0   16G   0% /proc/kcore

tmpfs
tmpfs   16G     0   16G   0% /proc/timer_stats

root@sprout-1-1pp1p:~#

 

Well, do we have some simple solution for this ?  

 

Great thanks J

 

Jia Xuan

 

China Mobile Research Institute

 

 

发件人: jiaxuan [mailto:[email protected]] 
发送时间: 2016年3月1日 10:07
收件人: 'Matt Williams (projectclearwater.org)'
抄送: '[email protected]'; 'Chris Elford'
主题: 答复: [Project Clearwater] Test Clearwater on Openshift

 

Matt:

 

root@sprout-1-u9v45:~# cd /usr/share/clearwater/sprout

root@sprout-1-u9v45:/usr/share/clearwater/sprout# ls -l

total 4

drwxr-xr-x. 2 root root 4096 Dec 11 09:58 lib

drwxr-xr-x. 2 root root   96 Mar  1 02:00 plugins

root@sprout-1-u9v45:/usr/share/clearwater/sprout# cd plugins/

root@sprout-1-u9v45:/usr/share/clearwater/sprout/plugins# ls -l

total 608

-rw-r--r--. 1 root root 171456 Dec  7 16:00 sprout_bgcf.so

-rw-r--r--. 1 root root 212808 Dec  7 16:00 sprout_icscf.so

-rw-r--r--. 1 root root 113960 Dec  7 16:00 sprout_mmtel_as.so

-rw-r--r--. 1 root root 122504 Dec  7 16:00 sprout_scscf.so

root@sprout-1-u9v45:/usr/share/clearwater/sprout/plugins#

 

 

 

发件人: Matt Williams (projectclearwater.org)
[mailto:[email protected]] 
发送时间: 2016年3月1日 1:31
收件人: jiaxuan
抄送: [email protected]; Chris Elford
主题: RE: [Project Clearwater] Test Clearwater on Openshift

 

Jia,

 

Thanks for these diagnostics.  To me, the interesting bit is (in
sprout_*.txt):

 

29-02-2016 11:20:03.678 UTC Status pluginloader.cpp:63: Loading plug-ins
from /usr/share/clearwater/sprout/plugins

29-02-2016 11:20:03.679 UTC Status pluginloader.cpp:148: Finished loading
plug-ins

 

Sprout is architected as a base executable with plug-ins (often referred to
as "Sproutlets") on top of it to implement function.  The Sproutlets are
loaded as shared objects (i.e. .so files) from the
/usr/share/clearwater/sprout/plugins directory.  The log above indicates
that it doesn't find any plugins.

 

Plugins are contained in separate Debian packages, such as sprout-icscf,
sprout-scscf and sprout-bgcf (for each of the functions that Sprout
provides).  I've checked the cw_package_info.txt file that you provided, and
this shows that these packages are installed, so the shared objects should
be present.

 

So I think the key question is whether these shared objects are present.  On
the Sprout node, please can you

-   run "ls -l /usr/share/clearwater/sprout/plugins" to list the contents of
this directory

-   run "ls -l /usr/share/clearwater/sprout" to check that the permissions
on the containing directory?

 

Please let me know.

 

Thanks,

 

Matt

 

--

 

Matt Williams
Lead Architect, Project Clearwater

+44 (0) 20 8366 1177

 

From: jiaxuan [mailto:[email protected]] 
Sent: 29 February 2016 12:06
To: Matt Williams <[email protected]>
Cc: [email protected]; Chris Elford
<[email protected]>
Subject: 答复: [Project Clearwater] Test Clearwater on Openshift

 

Hi Matt, Chris,

Firstly , thanks for answering my questions. That makes me more confident to
move docker-compose into Openshift platform. 

Well, Openshift is using RHEL7 as its host OS. But the container is still
using ubuntu system, as far as I know the base image is Ubuntu14.04. I
change nothing in Dockerfile.  I am sorry I can’t find the log about
‘docker build’ and ‘docker compose’. But all the call succeeds. So I
copy these images into Openshift Platform, and set some environment values,
make all the models can be connected by
requirements(https://raw.githubusercontent.com/Metaswitch/clearwater-docker/
master/minimal-distributed.yaml).

 

For openshift platform:

1. All the subscribers are from Ellis web UI. From the client(x-lite or
zoiper), I can see all the subscribers are registered.

2. The request ‘INVITE’ has been sent from bono to sprout. After at least
10 seconds, bono reply 408 to UE.

 

I attach the log file which you wanted, please check .

 

Great thanks.

 

Jia Xuan

 

 

发件人: Matt Williams [mailto:[email protected]] 
发送时间: 2016年2月26日 20:42
收件人: jiaxuan
抄送: [email protected]; Chris Elford
主题: RE: [Project Clearwater] Test Clearwater on Openshift

 

Jia,

 

I think I'm a bit more positive that we can make this work than Chris is -
my understanding is that OpenShift is a Platform as a Service (Paas) built
on Docker, and we've successfully run Clearwater under Docker before, so
unless OpenShift disables something we rely on, Clearwater should run on
OpenShift.

 

His concern was that you were trying to port Clearwater to run on Red Hat
Enterprise Linux (RHEL), rather than under Ubuntu.  However, I think it
should be possible to run Clearwater in its native Ubuntu, even if the host
OS is RHEL.  Please can you confirm which guest OS your containers are
running?  ...and have you made any changes to the clearwater-docker scripts?

 

When Chris asked about "subscribers", he was referring to the telephone
numbers you're calling between.  How did you pick the numbers 6505550219 and
6505550782, for example?  Did you create them through the Ellis web UI?  Are
these the only 2 subscribers you've created?

 

The diagnostics we've got so far haven't been conclusive, but there are
three things that would be useful.

・         The complete logs from the output from the "docker build" and
"docker compose" commands, showing all the packages being installed to build
the images and then the images being deployed, just in case there's
something odd going on there.

・         On the Sprout node, stop the sprout process (with "sudo service
sprout stop"), wait 30s so that it has definitely restarted and then attempt
a call, and send us the logs from that - it's possible that something is
going wrong on start-up.

・         Clearwater has a built-in tool to gather the key diagnostics
together.  On the Sprout node, run "/usr/share/clearwater/bin/gather_diags"
and then gather the diagnostic dump from
/var/clearwater-diags-monitor/dumps/*.tar.gz and send it to us.

 

Please let us know.

 

Thanks,

 

Matt

 

--

 

Matt Williams
Lead Architect, Project Clearwater

+44 (0) 20 8366 1177

 

From: Clearwater [mailto:[email protected]] On
Behalf Of Chris Elford
Sent: 26 February 2016 11:59
To: jiaxuan <[email protected]>
Cc: [email protected]
Subject: Re: [Project Clearwater] Test Clearwater on Openshift

 

I notice below that you say you are using Openshift and Kubernetes. As far
as I know, nobody is currently running Project Clearwater using these
platforms, and I would not expect it to work without some development work
to port it to this new platform.

 

I think that we need to understand what you did to allow you to install
Project Clearwater on this new platform before we can provide any help.

 

Yours,

 

Chris

 

From: jiaxuan [mailto:[email protected]] 
Sent: 26 February 2016 09:02
To: Chris Elford <[email protected]>
Cc: [email protected]
Subject: 答复: [Project Clearwater] Test Clearwater on Openshift

 

Sorry, I have no idea about what’s ‘subscriber’. It’s almost same with
the environment which is setup by docker-compose
(https://github.com/Metaswitch/clearwater-docker).  But all call fail. 

 

I found a PUBLISH message : The content-Length is zero.  

 

PUBLISH sip:[email protected];transport=TCP SIP/2.0^M

Via: SIP/2.0/TCP
175.128.0.113:55316;branch=z9hG4bK-524287-1---4b2b34f926a6c876;rport^M

Max-Forwards: 70^M

Route: <sip:10.1.0.217:5054;transport=TCP;lr;orig>^M

Contact: <sip:[email protected]:55316;transport=TCP>^M

To: "2323"<sip:[email protected];transport=TCP>^M

From: "2323"<sip:[email protected];transport=TCP>;tag=ea19e074^M

Call-ID: ZuNcniFDAQplqlNX3qyFJQ..^M

CSeq: 319 PUBLISH^M

Expires: 600^M

Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO,
SUBSCRIBE^M

Supported: replaces, norefersub, extended-refer, timer, outbound, path,
X-cisco-serviceuri^M

User-Agent: Z 3.9.32144 r32121^M

Event: presence^M

Allow-Events: presence, kpml^M

Content-Length: 0^M

^M

While checking the docker-compose env, I got           

Max-Forwards: 70^M

Route: <sip:172.17.0.5:5054;transport=TCP;lr;orig>^M

Contact: <sip:[email protected]:51158;transport=TCP>^M

To: "123"<sip:[email protected];transport=TCP>^M

From: "123"<sip:[email protected];transport=TCP>;tag=e72f4e32^M

Call-ID: vqETasJUaN4hD1h5scKyUA..^M

CSeq: 1 PUBLISH^M

Expires: 600^M

Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO,
SUBSCRIBE^M

Content-Type: application/pidf+xml^M

Supported: replaces, norefersub, extended-refer, timer, outbound, path,
X-cisco-serviceuri^M

User-Agent: Z 3.9.32144 r32121^M

Event: presence^M

Allow-Events: presence, kpml^M

Content-Length: 271^M

^M

<?xml version="1.0" encoding="UTF-8"?>^M

<presence xmlns="urn:ietf:params:xml:ns:pidf"^M

          entity="sip:[email protected];transport=TCP">^M

  <tuple id="6505550782" >^M

     <status><basic>open</basic></status>^M

     <note>Online</note>^M

  </tuple>^M

</presence>^M

 

Is that helpful? Thanks. 

 

Jia Xuan

 

发件人: Chris Elford [mailto:[email protected]] 
发送时间: 2016年2月26日 0:27
收件人: jiaxuan
抄送: [email protected]
主题: RE: [Project Clearwater] Test Clearwater on Openshift

 

Hi,

 

I’ve taken a look at your Sprout logs. In order to diagnose your problem,
it would be useful to have some more information about what you are seeing.

・       What are the subscribers are you trying to call between?

・       Are you seeing all calls fail or just occasional ones?

 

We’ve looked into the two issues that you mentioned below.

 

It looks like Ralf is configured to send billing data to a CDF at
example.com. The logs in your message show that it is failing to do so. You
can configure a real CDF by changing the value of ‘cdf_identity’ in the
deployment’s shared config. See
http://clearwater.readthedocs.org/en/latest/Clearwater_Configuration_Options
_Reference/index.html for details.

 

We have looked into the tombstone issue that you mention below. We do not
think that this will cause any problems. We have raised
https://github.com/Metaswitch/sprout/issues/1334 to track working around it
and cleaning up those entries.

 

Yours,

 

Chris

 

From: Clearwater [mailto:[email protected]] On
Behalf Of jiaxuan
Sent: 25 February 2016 08:44
To: [email protected]
Subject: [Project Clearwater] Test Clearwater on Openshift

 

Hi list:

  

  I have installed clearwater, following “Manual Install Instrutions”. The
difference is that it’s running on Openshift which is using Kurbernetes.
Currently the Ellis model is running well, as I can make my X-Lite client
registered in. The problem is that: The call function doesn’t work
properly. I list what I have found:

  1. Ralf: from /var/log/ralf/ralf_2016XXX

    24-02-2016 13:00:34.447 UTC Verbose diameterstack.cpp:1413: Sending
Diameter message of type 271 on transaction 0x7f17d0005100

24-02-2016 13:00:34.447 UTC Debug diameterstack.cpp:397: Routing out
callback from freeDiameter

24-02-2016 13:00:34.447 UTC Error diameterstack.cpp:293: Routing error: 'No
remaining suitable candidate to route the message to' for message with
Command-Code 271, Destination-Host  and Destination-Realm example.com

24-02-2016 13:00:34.447 UTC Debug freeDiameter: Iterating on rules of
COMMAND: '(generic error format)'.

24-02-2016 13:00:34.447 UTC Debug freeDiameter: Calling callback registered
when query was sent (0x437910, 0x7f17d0005100)

24-02-2016 13:00:34.447 UTC Verbose diameterstack.cpp:1093: Got Diameter
response of type 271 - calling callback on transaction 0x7f17d0005100

24-02-2016 13:00:34.447 UTC Warning peer_message_sender.cpp:125: Failed to
send ACR to  (number 0)

24-02-2016 13:00:34.447 UTC Error peer_message_sender.cpp:145: Failed to
connect to all CCFs, message not sent

24-02-2016 13:00:34.447 UTC Warning session_manager.cpp:319: Session for
79048MzlhMGNjMzc4YmEyY2NlMGEyZmU2ODNmYjZjM2E1ZGY received error from CDF

24-02-2016 13:00:34.470 UTC Verbose httpstack.cpp:286: Process request for
URL /call-id/79048MzlhMGNjMzc4YmEyY2NlMGEyZmU2ODNmYjZjM2E1ZGY, args (null)

  2. Sprout:from /var/log/sprout/sprout_current.txt . We can see there’re
several ‘tombstone’ element in this json. 

25-02-2016 08:05:00.076 UTC Debug avstore.cpp:72: Set AV for
[email protected]\7b66730d304dcdcb

{"digest":{"ha1":"3fb2ca6bb49c77b0907e080079d325a0","realm":"example.com","q
op":"auth"},"branch":"z9hG4bKPjbALlVrXogjQKxNGPi1wmdGhDKXTFBr7h","tombstone"
:true,"tombstone":true,"tombstone":true}

 

  I attached all the log files in this email. 

We appreciate your response. Thanks. 

                                                      

Jia Xuan

China Mobile Research Institute

_______________________________________________
Clearwater mailing list
[email protected]
http://lists.projectclearwater.org/mailman/listinfo/clearwater_lists.projectclearwater.org

Reply via email to