Bug 518304

Summary: rdiff gives up
Product: [Internal Novell Products] openSUSE Build Service Reporter: Michael Meeks <mmeeks>
Component: webuiAssignee: Sascha Peilicke <speilicke>
Status: RESOLVED FIXED QA Contact: Adrian Schröter <adrian.schroeter>
Severity: Normal    
Priority: P2 - High CC: suse-tux, vuntz
Version: 2.2   
Target Milestone: 2.2   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Michael Meeks 2009-07-01 15:05:13 UTC
I do:

osc rdiff -u openSUSE:Factory sysconfig | tail
+-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+-    ac_header_preproc=yes
+-    ;;
+-  no:yes:* )
+-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
(82 more lines skipped)

ie. it appears to give up in the middle of the diff - why ?

Apparently there is no obvious option to persuade it to do a full diff; and:

$ osc rdiff -u openSUSE:Factory sysconfig | wc -l
261

why 261 ? ;-) is that 256 + 5 or ...
Comment 1 Marcus Hüwe 2009-07-01 23:25:21 UTC
(In reply to comment #0)
> $ osc rdiff -u openSUSE:Factory sysconfig | wc -l
> 261
> 
> why 261 ? ;-) is that 256 + 5 or ...
The magic number is 200:) - the maximum number of lines for each file is 200 (without the header). This value is hardcoded in the bs_srcserver but I have no clue why. I assume there's a limit in order to avoid too big diffs because at the moment the complete diff is generated first and then sent to the user (in case of a very, very big diff this might lead to problems so we might need to send some chunks to the user instead of the whole diff).
Comment 2 Michael Meeks 2009-07-02 09:41:27 UTC
Hokay - if we can't block the diffing process on the network socket / flow-control to the client, then I guess that's what we have to do.

It would be nice to have:

 a) a higher limit - 1000 lines ?
 b) a way of turning that off

Thanks :-)
Comment 3 Marcus Hüwe 2009-07-08 18:11:36 UTC
*** Bug 519912 has been marked as a duplicate of this bug. ***
Comment 4 Sascha Peilicke 2010-11-04 08:21:09 UTC
What happens if we set that value to 1000?
Comment 5 Sascha Peilicke 2010-11-04 09:22:02 UTC
*** Bug 634304 has been marked as a duplicate of this bug. ***
Comment 6 Sascha Peilicke 2010-11-04 09:22:38 UTC
*** Bug 650476 has been marked as a duplicate of this bug. ***
Comment 7 Adrian Schröter 2010-11-08 13:12:49 UTC
This is really a critical bug.

Michael, let's fix this for 2.1.2.
Comment 8 Michael Schröder 2010-11-08 13:50:24 UTC
Under what definition of 'critical'? Reverted to normal. The behaviour itself is not even a bug.

We'll add an parameter to set that value, but be warned: you may run into timeouts if you set it to a very high value.
Comment 9 Adrian Schröter 2010-11-08 14:02:51 UTC
Not being able to create full diffs at all is critical. You can't create appliable patches and you can not review submissions at all.
Comment 10 Sascha Peilicke 2010-11-08 14:31:04 UTC
(In reply to comment #8)
> Under what definition of 'critical'? Reverted to normal. The behaviour itself
> is not even a bug.
> 
> We'll add an parameter to set that value, but be warned: you may run into
> timeouts if you set it to a very high value.

Do we run into a timeout if we set the value to 1000?

This could solve at least the majority of cases until we have a _real solution_.
Comment 11 Adrian Schröter 2010-11-09 11:39:44 UTC
backend now supports full diff for 2.2, we need to enhance webui and osc for it.
(FATE 310489)
Comment 12 Sascha Peilicke 2011-11-07 15:04:13 UTC
The webui parts are fixed now.
Comment 13 Sascha Peilicke 2011-11-09 10:53:07 UTC
osc should display full diffs now. Commit 2ce8484 in master branch