6.18.0 breaking changes kicked me into the a...

166 views
Skip to first unread message

Neil Young

unread,
Jun 9, 2022, 1:00:11 PM6/9/22
to kurento
@Juan:

Up to now I never installed anything else as 6.16.0 using Ansible on my servers. On April 29 I setup a new instance and it was running fine initially. 

Now the customer wants to use it and it is not working anymore. Since I know that 6.18.0 introduces some breaking changes compared to 6.16.0 I think the problem is here:

If I check the version of it all I find this:

    ubuntu@ip-172-31-71-128:~$ kurento-media-server --version
    Kurento Media Server version: 6.16.0
    Found modules:
       'core' version 6.18.0~15.ge8d9b2a0
       'elements' version 6.18.0~12.gcb3ca0f
       'filters' version 6.18.0~4.g881448c
       'webrtcarucocode' version 0.1.6~12.gb271241
       'webrtcbarcode' version 0.1.6~4.g413eaee
    ubuntu@ip-172-31-71-128:~$


How in the world could 6.18.0 submodules have found the way onto this machine, if 6.16.0 was explicitly installed from source?

That's a little riddle.

Neil Young

unread,
Jun 9, 2022, 1:06:51 PM6/9/22
to kurento
I think I found a clue:

I reviewed my Ansible script and found, that I apply the explicit versioning to kurento-media-server only


- name: KURENTO-MEDIA-SERVER - Clone (run as non-privileged user)
tags: kurento-media-server
git:
dest: ~/{{ kms_build_dir }}/kurento-media-server
version: "tags/{{ kurento_media_server_version}}"
force: yes
become: yes
become_user: "{{ non_root_user }}"


But this is just one of 25 packages. Could you please help me to identify the packages, which need to be checked out explicitly as 6.16.0? Is it just kms-core, kms-elements and kms-filters? I also have 

kurento-module-creator
kms-cmake-utils
kms-jsonrpc
kms-elements

as additional candidates...

Neil Young

unread,
Jun 9, 2022, 5:19:28 PM6/9/22
to kurento
Oh boy, this problem makes some waves...

I have now ensured that I checkout all relevant projects at 6.16.0. 

But for some reasons the compilation of kms-core fails and kurento-module creator is blamed

My steps for creating kurento-module-creator and kms-core

// kurento-module-creator
git clone https://github.com/Kurento/kurento-module-creator
cd kurento-module-creator/
git checkout tags/6.16.0
mvn package
sudo install target/kurento-module-creator-jar-with-dependencies.jar /usr/bin -v
sudo install scripts/kurento-module-creator /usr/bin -v
sudo mkdir -p /usr/local/share/`cmake --version | awk '{split($0,a," "); split($a[3],a,"."); print "cmake-"a[1]"."a[2]; exit}'`/Modules/
sudo install target/classes/FindKurentoModuleCreator.cmake /usr/local/share/`cmake --version | awk '{split($0,a," "); split($a[3],a,"."); print "cmake-"a[1]"."a[2]; exit}'`/Modules/ -v


// kms-core
cd kms-core/
git checkout tags/6.16.0
mkdir build
cd build
cmake           -D CMAKE_MODULE_PATH=/usr/local/share/"`cmake --version | awk '{split($0,a," "); split($a[3],a,"."); print "cmake-"a[1]"."a[2];exit}'`"/Modules           -D CMAKE_BUILD_TYPE=Release           -D CMAKE_INSTALL_PREFIX=/usr/.           ..


While running  this on kms-core I'm catching this error:

cmake \

>           -D CMAKE_MODULE_PATH=/usr/local/share/"`cmake --version | awk '{split($0,a," "); split($a[3],a,"."); print "cmake-"a[1]"."a[2];exit}'`"/Modules \

>           -D CMAKE_BUILD_TYPE=Release \

>           -D CMAKE_INSTALL_PREFIX=/usr/. \

>           ..

-- The C compiler identification is GNU 7.5.0

-- The CXX compiler identification is GNU 7.5.0

-- Check for working C compiler: /usr/bin/cc

-- Check for working C compiler: /usr/bin/cc -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Detecting C compile features

-- Detecting C compile features - done

-- Check for working CXX compiler: /usr/bin/c++

-- Check for working CXX compiler: /usr/bin/c++ -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Detecting CXX compile features

-- Detecting CXX compile features - done

-- CMake project: kms-core

If KurentoHelpers is not found, you need to install 'kms-cmake-utils' from the Kurento repository

-- Found KurentoHelpers: 6.16.0 (found version "6.16.0") 

-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 

-- Found /usr/bin/kurento-module-creator

-- Found /usr/bin/kurento-module-creator

-- Found KurentoModuleCreator: 6.16.0 (found version "6.16.0") 

-- Resolving KurentoModuleCreator version ^6.0.0 with 6.16.0

-- Found Git: /usr/bin/git (found version "2.17.1") 

Run command: '/usr/bin/kurento-module-creator -r;/home/ubuntu/kms-build/kms-core/src/server/interface;-dr;/usr/share/kurento/modules;-s;version'

Error calling code generator: 

CMake Error at CMake/CodeGenerator.cmake:82 (message):

  Output error: Exception in thread "main" Unexpected character 'ILLEGAL(^)'

  at position '0', expecting '[DIGIT]'


     at

  com.github.zafarkhaja.semver.VersionParser.consumeNextCharacter(VersionParser.java:534)



     at

  com.github.zafarkhaja.semver.VersionParser.digits(VersionParser.java:469)


     at

  com.github.zafarkhaja.semver.VersionParser.numericIdentifier(VersionParser.java:429)



     at

  com.github.zafarkhaja.semver.VersionParser.parseVersionCore(VersionParser.java:270)



     at

  com.github.zafarkhaja.semver.VersionParser.parseValidSemVer(VersionParser.java:222)



     at

  com.github.zafarkhaja.semver.VersionParser.parseValidSemVer(VersionParser.java:204)



     at com.github.zafarkhaja.semver.Version.valueOf(Version.java:274)


     at

  org.kurento.modulecreator.VersionManager.processCaretRanges(VersionManager.java:171)



     at

  org.kurento.modulecreator.VersionManager.parseVersion(VersionManager.java:163)



     at

  org.kurento.modulecreator.VersionManager.compatibleVersion(VersionManager.java:318)



     at

  org.kurento.modulecreator.VersionManager.devCompatibleVersion(VersionManager.java:305)



     at

  org.kurento.modulecreator.definition.ModuleDefinition.resolveImports(ModuleDefinition.java:380)



     at

  org.kurento.modulecreator.definition.ModuleDefinition.resolveModule(ModuleDefinition.java:301)



     at

  org.kurento.modulecreator.definition.ModuleDefinition.resolveImports(ModuleDefinition.java:395)



     at

  org.kurento.modulecreator.definition.ModuleDefinition.resolveModule(ModuleDefinition.java:301)



     at

  org.kurento.modulecreator.ModuleManager.resolveModules(ModuleManager.java:38)



     at

  org.kurento.modulecreator.KurentoModuleCreator.loadModulesFromKmdFiles(KurentoModuleCreator.java:313)



     at

  org.kurento.modulecreator.KurentoModuleCreator.printValues(KurentoModuleCreator.java:367)



     at org.kurento.modulecreator.Main.showValues(Main.java:129)


     at org.kurento.modulecreator.Main.main(Main.java:105)


Call Stack (most recent call first):

  CMake/CodeGenerator.cmake:1071 (execute_code_generator)

  CMakeLists.txt:17 (get_values_from_model)



-- Configuring incomplete, errors occurred!

See also "/home/ubuntu/kms-build/kms-core/build/CMakeFiles/CMakeOutput.log".


What the hell....


I bet this all worked fine a couple of month ago, when 6.16.0 was master.

And it also works in a 20.04 VM. This OS here is 18.04

Neil Young

unread,
Jun 9, 2022, 5:47:30 PM6/9/22
to kurento
OK, compiling kurento-module-creator and kms-core _without_ trying to return to 6.16.0 works.

The only problem: Both are 6.18.0 then, which is incompatible with my client.

CMAKE result for kms-core



ubuntu@ip-172-31-71-128:~/kms-build/kms-core/build$ cmake \

>           -D CMAKE_MODULE_PATH=/usr/local/share/"`cmake --version | awk '{split($0,a," "); split($a[3],a,"."); print "cmake-"a[1]"."a[2];exit}'`"/Modules \
>           -D CMAKE_BUILD_TYPE=Release \
>           -D CMAKE_INSTALL_PREFIX=/usr/. \
>           ..
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMake project: kms-core
If KurentoHelpers is not found, you need to install 'kms-cmake-utils' from the Kurento repository
-- Found KurentoHelpers: 6.18.0~1.g4ffa8a8 (found version "6.18.0~1.g4ffa8a8")
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Found /usr/bin/kurento-module-creator
-- Found /usr/bin/kurento-module-creator
-- Found KurentoModuleCreator: 6.18.0-SNAPSHOT (found version "6.18.0-SNAPSHOT")
-- Resolving KurentoModuleCreator version ^6.18.0-dev with 6.18.0-SNAPSHOT

-- Found Git: /usr/bin/git (found version "2.17.1")
Run command: '/usr/bin/kurento-module-creator -r;/home/ubuntu/kms-build/kms-core/src/server/interface;-dr;/usr/share/kurento/modules;-s;version'
-- Version info from git: 6.18.0~25.gc75e5c90
-- Project version: kms-core-6.18.0~25.gc75e5c90
-- Performing Test HAS_WARNING_DATE_TIME
-- Performing Test HAS_WARNING_DATE_TIME - Success
-- Performing Test HAS_STD_REGEX_REPLACE
-- Performing Test HAS_STD_REGEX_REPLACE - Success
-- Performing Test HAVE_PTHREAD_SETNAME_NP_WITH_TID
-- Performing Test HAVE_PTHREAD_SETNAME_NP_WITH_TID - Success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   filesystem
--   system
--   thread
--   unit_test_framework
--   chrono
--   date_time
--   atomic
-- Found Boost COMPONENTS filesystem;system;thread;unit_test_framework
-- Checking for module 'gstreamer-1.5'
--   Found gstreamer-1.5, version 1.8.1.1
-- Resolving gstreamer-1.5 version ^1.7.1 with 1.8.1.1
-- Checking for module 'gstreamer-base-1.5'
--   Found gstreamer-base-1.5, version 1.8.1.1
-- Resolving gstreamer-base-1.5 version ^1.7.1 with 1.8.1.1
-- Checking for module 'gstreamer-video-1.5'
--   Found gstreamer-video-1.5, version 1.8.1.1
-- Resolving gstreamer-video-1.5 version ^1.7.1 with 1.8.1.1
-- Checking for module 'gstreamer-check-1.5'
--   Found gstreamer-check-1.5, version 1.8.1.1
-- Resolving gstreamer-check-1.5 version ^1.7.1 with 1.8.1.1
-- Checking for module 'gstreamer-sdp-1.5'
--   Found gstreamer-sdp-1.5, version 1.8.1.1
-- Resolving gstreamer-sdp-1.5 version ^1.7.1 with 1.8.1.1
-- Checking for module 'gstreamer-pbutils-1.5'
--   Found gstreamer-pbutils-1.5, version 1.8.1.1
-- Resolving gstreamer-pbutils-1.5 version ^1.7.1 with 1.8.1.1
-- Checking for module 'gstreamer-rtp-1.5'
--   Found gstreamer-rtp-1.5, version 1.8.1.1
-- Resolving gstreamer-rtp-1.5 version ^1.7.1 with 1.8.1.1
-- Checking for module 'kmsjsoncpp>=0.6.0'
--   Found kmsjsoncpp, version 1.6.3-dev
-- Found KmsJsonRpc: 6.16.0 (found version "6.16.0")
-- Resolving KmsJsonRpc version ^6.0.0 with 6.16.0
-- Checking for module 'sigc++-2.0'
--   Found sigc++-2.0, version 2.10.0
-- Resolving sigc++-2.0 version ^2.0.10 with 2.10.0
-- Checking for module 'glibmm-2.4'
--   Found glibmm-2.4, version 2.56.0
-- Resolving glibmm-2.4 version ^2.37 with 2.56.0
-- Checking for module 'uuid'
--   Found uuid, version 2.31.1
-- Found uuid
-- Found LIBVPX: /usr/include  
-- KurentoModuleCreator Already found
Run command: '/usr/bin/kurento-module-creator -r;/home/ubuntu/kms-build/kms-core/src/server/interface;-dr;/usr/share/kurento/modules;-s;code.implementation.lib;name'
Run command: '/usr/bin/kurento-module-creator -r;/home/ubuntu/kms-build/kms-core/src/server/interface;-dr;/usr/share/kurento/modules;-p'
Run command: '/usr/bin/kurento-module-creator -r;/home/ubuntu/kms-build/kms-core/src/server/interface;-dr;/usr/share/kurento/modules;-it;cpp_cmake_dependencies;-c;/home/ubuntu/kms-build/kms-core/build/src/server;-lf'
-- Including generated cmake coreDependencies.cmake
Run command: '/usr/bin/kurento-module-creator -r;/home/ubuntu/kms-build/kms-core/src/server/interface;-dr;/usr/share/kurento/modules;-it;cpp_pkgconfig;-c;/home/ubuntu/kms-build/kms-core/build/src/server;-lf'
-- Generated: kmscore.pc.in
Run command: '/usr/bin/kurento-module-creator -c;/home/ubuntu/kms-build/kms-core/src/server/implementation/objects;-r;/home/ubuntu/kms-build/kms-core/src/server/interface;-dr;/usr/share/kurento/modules;-dr;/usr/share/kurento/modules;-it;cpp_server;-n;-lf'
-- Generated: MediaObjectImpl.cpp
-- Generated: ServerManagerImpl.cpp
-- Generated: SessionEndpointImpl.cpp
-- Generated: HubImpl.cpp
-- Generated: FilterImpl.cpp
-- Generated: EndpointImpl.cpp
-- Generated: HubPortImpl.cpp
-- Generated: PassThroughImpl.cpp
-- Generated: UriEndpointImpl.cpp
-- Generated: MediaPipelineImpl.cpp
-- Generated: SdpEndpointImpl.cpp
-- Generated: BaseRtpEndpointImpl.cpp
-- Generated: MediaElementImpl.cpp
-- Generated: MediaObjectImpl.hpp
-- Generated: ServerManagerImpl.hpp
-- Generated: SessionEndpointImpl.hpp
-- Generated: HubImpl.hpp
-- Generated: FilterImpl.hpp
-- Generated: EndpointImpl.hpp
-- Generated: HubPortImpl.hpp
-- Generated: PassThroughImpl.hpp
-- Generated: UriEndpointImpl.hpp
-- Generated: MediaPipelineImpl.hpp
-- Generated: SdpEndpointImpl.hpp
-- Generated: BaseRtpEndpointImpl.hpp
-- Generated: MediaElementImpl.hpp
Run command: '/usr/bin/kurento-module-creator -r;/home/ubuntu/kms-build/kms-core/src/server/interface;-dr;/usr/share/kurento/modules;-it;cpp_find_cmake;-c;/home/ubuntu/kms-build/kms-core/build/src/server;-lf'
-- Generated: FindKMSCORE.cmake.in
Run command: '/usr/bin/kurento-module-creator -r;/home/ubuntu/kms-build/kms-core/src/server/interface;-dr;/usr/share/kurento/modules;-o;/home/ubuntu/kms-build/kms-core/build/src/server/kmd'
-- Getting config files from /home/ubuntu/kms-build/kms-core/src/server/config
-- Found config files: /home/ubuntu/kms-build/kms-core/src/server/config/BaseRtpEndpoint.conf.ini;/home/ubuntu/kms-build/kms-core/src/server/config/MediaElement.conf.ini;/home/ubuntu/kms-build/kms-core/src/server/config/SdpEndpoint.conf.json;/home/ubuntu/kms-build/kms-core/src/server/config/UriEndpoint.conf.ini
-- Found GLIB-MKENUMS: /usr/bin/glib-mkenums  
-- Found GLIB-GENMARSHAL: /usr/bin/glib-genmarshal  
-- Adding test: test_hubport
-- Adding custom target: 'check_build'
-- Adding custom target: 'check'
-- Adding test: test_filterelement
-- Adding test: test_agnosticbin
-- Adding test: test_agnosticbin_negotiation
-- Adding test: test_agnosticbin3
-- Adding test: test_audiomixerbin
-- Adding test: test_bufferinjector
-- Adding test: test_pad_connections
-- Adding test: test_passthrough
-- Adding test: test_sdp_agent
-- Adding test: test_metadata
-- Adding test: test_lists
-- Adding test: test_utils
-- Adding test: test_refcounts
-- Adding test: test_rembmanager
-- Adding test: test_rtpsync
-- Adding test: test_module_manager
-- Adding test: test_media_set
-- Adding test: test_media_element
-- Adding test: test_rtp_endpoint_cpp
-- Adding test: test_sdp_endpoint
-- Adding test: test_media_object
-- Adding test: test_complex_type
-- Adding test: test_uri_endpoint
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/kms-build/kms-core/build
ubuntu@ip-172-31-71-128:~/kms-build/kms-core/build$

Neil Young

unread,
Jun 9, 2022, 6:08:58 PM6/9/22
to kurento
Not sure, if this matters, but the stack trace points to some kurento-module-creator processCaretRanges, which fails with the 6.16.x version, but not with the 6.18.x


Not working:

- Resolving KurentoModuleCreator version ^6.0.0 with 6.16.0

Working:

- Resolving KurentoModuleCreator version ^6.18.0-dev with 6.18.0-SNAPSHOT

Message has been deleted

Neil Young

unread,
Jun 10, 2022, 6:31:25 AM6/10/22
to kurento
@Juan:  Received your answer, which you probably have deleted here. First of all let me thank you that you have spent some time to elaborate and help me out here. Very much appreciated. 

Regarding your questions:

 > please let me know why exactly it is not possible to use Kurento 6.18 and you are forced to stay on 6.16.

I think it is not a general impossible on a longer term, I just don't have resources now. In fact, my Node client is not working with 6.18. I suppose, it is mostly due to the renamed events. I haven't found the time to investigate, but this is what I believe.
Then I think 6.18. is still not released yet (is it?)

> Please, make sure that the machine doesn't have already installed packages for a newer version.

In fact due to the failure I made (I just checked out 6.16. for Kurento-Media-Server, not for the rest of the gang) I for sure introduced this mess by mixing packages.

> Yes you need to `git checkout` ALL Kurento repos to the tag "6.16.0"

Here is the list of projects, I'm checking out. Is your statement valid for all of these?


> Note however, as I was testing those commands for you, I noticed that GitHub has blocked accesses to repos with the git:// protocol, and instead now they force everything to be done with https://. This breaks the kms-cmake-utils repo, which has a git submodule to git://github.com/arsenm/sanitizers-cmake.git

Yepp. Confirmed. I noticed this with exactly this project and Ansible. Strange enough, this does NOT work: 

  - name: KMS-CMAKE-UTILS - Clone (run as non-privileged user)
      tags: kms-cmake-utils
      git:
        repo: 'https://github.com/Kurento/kms-cmake-utils'
        dest: ~/{{ kms_build_dir }}/kms-cmake-utils

        version: "tags/{{ kurento_media_server_version}}"
        force: yes
      become: yes
      become_user: "{{ non_root_user }}"


kms_build_dir is "kms-build"
kurento_media_server_version is "6.16.0"
non_root_user is "ubuntu"

But if I drop the "version" tag, it magically works.  Also, a separate checkout of 6.16.0 seems to work flawlessly (this is what I use now, replacing the explicit "version" tag at clone time.

So my command for kms-cmake-utils is like so (I guess, can't see, what Ansible makes of it, but this works also on console level):

cd kms-cmake-utils
git checkout 6.16.0
...

For me that worked.

Thanks





Neil Young

unread,
Jun 10, 2022, 6:54:15 AM6/10/22
to kurento
> Yes you need to `git checkout` ALL Kurento repos to the tag "6.16.0"

At least for the GST modules this cannot work... However, I will checkout the "ususal suspects" as 6.16.0 and see how far it goes

Neil Young

unread,
Jun 10, 2022, 7:07:16 AM6/10/22
to kurento
> Please point me to what breaks when you upgrade between these two.

Sorry, have overseen this question. I recall that my small test application didn't work any longer. I reported in this thread


However, I need to repeat this with a clean install of 6.18.0. As I have learned now, my installation wasn't running as expected since April this year

Neil Young

unread,
Jun 10, 2022, 8:25:16 AM6/10/22
to kurento
I was able to re-compile 6.16.0 on a clean 18.04 VM today. All fine. Thanks

ubuntu@testkms:~$ kurento-media-server --version

Kurento Media Server version: 6.16.0

Found modules:

   'core' version 6.16.0

   'elements' version 6.16.0

   'filters' version 6.16.0




Neil Young

unread,
Jun 10, 2022, 9:20:05 AM6/10/22
to kurento
> In this case, please make sure you don't have files in /usr/share/kurento/modules/{core,elements,filters}.kmd.json, with "version" or "kurentoVersion" such as "^6.18.0-dev". This can happen if you previously had installed the packages kms-{core,elements,filters}-dev from nightly versions.

Yes there were 6.18.0 files in this directory

Neil Young

unread,
Jun 10, 2022, 3:59:59 PM6/10/22
to kurento
After I was able to recompile 6.16.0 I was trying to do the same with 6.18.0, but failed already with the first module `kurento-module-creator`.

git clone https://github.com/Kurento/kurento-module-creator
git checkout 6.18.0
error: pathspec '6.18.0' did not match any file(s) known to git.

Same with 'tags/6.18.0'. I suppose 6.18.0 is not released yet. 





Neil Young

unread,
Jun 10, 2022, 4:00:32 PM6/10/22
to kurento
Of course `cd kurento-module-creator` after clone...

Juan Navarro

unread,
Jun 14, 2022, 10:17:54 AM6/14/22
to kurento
I'm not sure what happened... my previous email, with long and detailed comments, was written on the Google Groups Web UI. And after hitting "Post Message", it just disappeared and no copy of it arrived to my email... that was hopefully just a glitch, but I'm happy to see that at least it reached you!

Regarding 6.18: Yeah, it has not been released yet. 6.18.0-dev is currently on the "master" branch.

By the way: the version-specific tags (like "6.16.0") exist only in Kurento repos (those named "kms-" or "kurento-"). The forked repos don't really contain such tags. Generally speaking, it is ok if you just use the master branch on those repos. They get extremely little movement over time.

Regards

Neil Young

unread,
Jun 14, 2022, 10:36:33 AM6/14/22
to kur...@googlegroups.com
Perfect. Thanks. When do you plan to release 6.18?

Sent from my iPhone


Am 14.06.2022 um 16:17 schrieb Juan Navarro <juan.n...@gmx.es>:


--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kurento/add001bc-95f9-4906-8b6a-10eacb2ad34an%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages