Building on Travis-CI

August 29, 2013 - 4 minute read -
travis gsoc

Commits

Whats going on..

I am refering to the latest build on travis-ci. Following things from the logs - https://s3.amazonaws.com/archive.travis-ci.org/jobs/10719866/log.txt

  • Now after evevery failure, the entire log of the server is also displayed. All errors and warning are included in this log
  • All unittests pass. This indicates that atleast everything was built properly
  • I could not find a way to use the typelibs file generated in the build process. So I am installing gir packages directly for gstreamer1.0
  • When running the server - libdc1394 error: Failed to initialize libdc1394
  • 
    ./tools/gstswitchserver.c:125:info: gst_switch_server init 0x1971000
    ./tools/gstswitchserver.c:1518:info: Compose sink to 1001, 1002
    ./tools/gstcomposite.c:88:info: gst_composite init 0x1974800
    ./tools/gstcomposite.c:155:warning: ignore changing mode in transition
    ./tools/gstswitchserver.c:707:info: Listening on localhost (::1:4000)
    ./tools/gstswitchserver.c:707:info: Listening on localhost (::1:5000)
    ./tools/gstswitchserver.c:736:error: bind socket: Error binding to address: Permission denied
    ./tools/gstswitchcontroller.c:484:info: Controller is listening at: unix:abstract=gstswitch
    ./tools/gstworker.c:477:error: output: (RESOURCE: 5) Could not open resource for reading.
    ./tools/gstworker.c:477:error: recorder: (RESOURCE: 5) Could not open resource for reading.
    
    This indicates something went wrong. Error binding to address: Permission denied. I am trying out different ports for the video_port , audio_port. Very much possible that the one under test is not open (probably port 1000). Also one interesting thing is that in this case compose ports are set as 1001 and 1002. Till now in numerous tests, I have seen that these are always 3001 and 3002 respectively.
  • This one seems a big problem. This is a log portion:
    
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <gstswitch.connection.Connection object at 0x2ccd790>
    
        def get_encode_port(self):
            """get_encode_port(out i port);
                Calls get_encode_port remotely
        
                :param: None
                :returns: tuple with first element encode port number
                """
            try:
                args = None
                connection = self.connection
                port = connection.call_sync(
                    self.bus_name,
                    self.object_path,
                    self.default_interface,
                    'get_encode_port',
                    args,
                    GLib.VariantType.new("(i)"),
                    Gio.DBusCallFlags.NONE,
                    -1,
    >               None)
    
    gstswitch/connection.py:181: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    args = (<DBusConnection object at 0x2cd1870 (GDBusConnection at 0x2ea7200)>, None, '/info/duzy/gst/switch/SwitchController', 'info.duzy.gst.switch.SwitchControllerInterface', 'get_encode_port', None, ...)
    kwargs = {}
    
        def function(*args, **kwargs):
    >       return info.invoke(*args, **kwargs)
    E       TypeError: Argument 1 does not allow None as a value
    
    /usr/lib/python2.7/dist-packages/gi/types.py:43: TypeError
    
    
    
    I have tested this code in quantal, and such an issue never came up. This error seems to be due to some missing elements in the Gio modules. The Gio reference I was using is http://developer.ubuntu.com/api/ubuntu-12.10/python/Gio-2.0.html. Now this one is for 12.10. This can be due to some missing packages in gi, though not sure.
  • At certain times in the day, like around 1 am IST, the travis server is busy. Since the building process requires large amounts of downloading and bandwidth is limited, there is a huge chance for the build to timeout at 50 mins.

C Coverage

With the existing gst-switch installed in ~/gst/stage/bin, I took another copy. Now I built this using ./autogen && make. The executable gst-switch-srv is produced in tools/ directory. Now doing make coverage shows the coverage. Hopefully this can be used. But this cannot be used with the executable gst-switch-srv present at ~/gst/stage/bin, since the gcov function requires .o files which will be present only in the tools folder.

Comments Section

Feel free to comment on the post but keep it clean and on topic.

blog comments powered by Disqus