Project

General

Profile

Bug #4461

RTP clock out of sync with lower layer

Added by laforge 7 months ago. Updated 6 months ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
osmo-bts-trx
Target version:
-
Start date:
03/19/2020
Due date:
% Done:

100%

Spec Reference:

Description

On a setup with current nightly osmo-trx-uhd + osmo-bts-trx, dexter and I am observing:

<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (934964->935003)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935029->934999)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (934999->935038)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935038->935007)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935016->935055)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935055->935025)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935025->935064)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935064->935033)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935033->935072)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935085->935055)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935055->935094)
<0000> rsl.c:2946 (bts=0,trx=0,ts=2,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935103->935072)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935072->935111)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935111->935081)
<0006> scheduler_trx.c:1780 TRX Clock Ind: elapsed_us=1000033, elapsed_fn=217, error_us=-1422
<0006> scheduler_trx.c:1798 GSM clock jitter: -1944us (elapsed_fn=0)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935085->935124)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935124->935094)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935098->935137)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935155->935124)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935124->935163)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935176->935146)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935150->935189)
<0000> rsl.c:2946 (bts=0,trx=0,ts=2,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935189->935228)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935228->935198)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935241->935280)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935280->935250)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935289->935259)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935263->935302)
<0000> rsl.c:2946 (bts=0,trx=0,ts=2,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935280->935319)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935319->935289)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935324->935293)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935293->935332)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935332->935302)
<0006> scheduler_trx.c:1780 TRX Clock Ind: elapsed_us= 998155, elapsed_fn=216, error_us=+1315
<0006> scheduler_trx.c:1798 GSM clock jitter: -3260us (elapsed_fn=0)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935302->935341)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935345->935315)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935315->935354)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935319->935358)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935358->935328)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935341->935380)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935380->935350)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935402->935371)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935371->935410)

What is obvious is that
  • it's always the magic values 1440 / 82594400
    • 1440 corresponds to 9 blocks of 160 clocks of our 8kHz sample clock
  • frame numbers are jumping back and forth
    <000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (934964->935003)
    <000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935029->934999)
    <000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (934999->935038)
    <000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935038->935007)
    <000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935016->935055)
    <000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935055->935025)
    <000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935025->935064)
    <000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935064->935033)
    <000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (935033->935072)
    <000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 82594400 vs 160 (935085->935055)
    

    this means we actually receive TCH data first for FN 935003, then advance to 935029 after which we receive TCH data for 934999. This is impossible and clearly indicates some problem in our scheduler.

Related issues

Related to OsmoBTS - Feature #3428: Implement handling of NOPE / IDLE indications from TransceiverResolved07/28/2018

Related to OsmoBTS - Bug #4734: Same comportment than BUG #4461 with lastest buildNew08/28/2020

History

#1 Updated by laforge 7 months ago

  • Category set to osmo-bts-trx

#2 Updated by laforge 7 months ago

  • % Done changed from 0 to 10

If I deactivate the 'handle loss detection of received TCH frame' sectio nfrom trx_tch_common(), The frame number jumps "into the future" are gone. It seems like that code is injecting uplink TCH.ind with frame numbers of the downlink. And downlink is of course advanced by "fn-advance" and hence wrong.

I still see plenty of those on a bad radio link:

<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 800 vs 160 (2455574->2455596)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2455617->2455626)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2455635->2455643)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1920 vs 160 (2455652->2455704)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 3200 vs 160 (2455704->2455791)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2455799->2455808)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2456536->2456545)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 1280 vs 160 (2456545->2456579)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2456887->2456896)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2456900->2456909)
<000e> l1sap.c:143 (bts=0,trx=0,ts=2,ss=0) RTP clock out of sync with lower layer: 960 vs 160 (2456887->2456913)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2457199->2457208)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2459699->2459708)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2459812->2459825)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 640 vs 160 (2459855->2459873)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 640 vs 160 (2459873->2459890)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2459890->2459903)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 640 vs 160 (2459998->2460016)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2460016->2460024)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 800 vs 160 (2460029->2460050)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2460128->2460137)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2460137->2460146)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (2460202->2460241)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2460258->2460267)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2460297->2460306)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 800 vs 160 (2460367->2460388)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 640 vs 160 (2460432->2460449)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2460731->2460739)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2460761->2460770)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1920 vs 160 (2460839->2460891)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2460895->2460908)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2460956->2460965)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 1440 vs 160 (2460973->2461012)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2461012->2461025)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 2080 vs 160 (2461025->2461082)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2461090->2461099)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2461853->2461862)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462156->2462165)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462191->2462200)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462217->2462226)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462243->2462252)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462265->2462273)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462377->2462386)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462503->2462512)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462538->2462546)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462564->2462572)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462663->2462672)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462694->2462702)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462793->2462802)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462915->2462923)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462945->2462954)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2462984->2462993)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2463032->2463045)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463079->2463088)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463170->2463179)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463240->2463248)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463257->2463266)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463292->2463300)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463305->2463313)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463326->2463335)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2463344->2463357)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463361->2463370)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2463387->2463400)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463487->2463495)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2463495->2463508)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463517->2463526)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463530->2463539)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463543->2463552)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463643->2463651)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463669->2463677)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463699->2463708)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2463708->2463721)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463721->2463729)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2463738->2463751)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463768->2463777)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 640 vs 160 (2463794->2463812)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463812->2463820)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 320 vs 160 (2463872->2463881)

which means that somehow we are not sending a "bad frame" TCH.ind up the L1SAP?

#3 Updated by laforge 7 months ago

<0007> scheduler_trx.c:1181 2637447/1989/07/33/31 (bts=0,trx=0,ts=1) TCH/F: Received incomplete frame (7/104)
<0007> scheduler_trx.c:1230 2637447/1989/07/33/31 (bts=0,trx=0,ts=1) TCH/F: Received bad data (7/104)
<000e> l1sap.c:143 (bts=0,trx=0,ts=1,ss=0) RTP clock out of sync with lower layer: 480 vs 160 (2637427->2637440)

#4 Updated by laforge 7 months ago

  • Related to Feature #3428: Implement handling of NOPE / IDLE indications from Transceiver added

#5 Updated by dexter 7 months ago

As discussed earlier this day I have now removed the nope_fn handler. The ul_fn handler is now called each time a nope indications arrives. This ensures proper clocking in osmo-bts-trx and the dropout handler in the scheduler should become active anymore.

https://gerrit.osmocom.org/c/osmo-bts/+/17539 scheduler: always call ul handler on nope ind

#7 Updated by laforge 7 months ago

  • Assignee changed from sysmocom to d8g11qnrlqjn
  • Priority changed from Urgent to High
  • % Done changed from 10 to 90

setting this to 90% and assinging to dexter. The only missing part is the follow-up patch to remote the nope_fn function pointer (And make sure all functions like rx_rach_fn can deal with burst_len==0).

#8 Updated by laforge 7 months ago

  • Assignee changed from d8g11qnrlqjn to dexter

#9 Updated by dexter 6 months ago

  • Status changed from New to Resolved
  • % Done changed from 90 to 100

Change Ice45d5986610d9bcef2a7e41f0a395ec779e3928 is merged, so this can be closed now

#10 Updated by laforge 26 days ago

  • Related to Bug #4734: Same comportment than BUG #4461 with lastest build added

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)