Last modified: 2014-01-10 13:53:14 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T37462, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 35462 - Tell git on gerrit.wikimedia.org not to generate spurious terminal sequences
Tell git on gerrit.wikimedia.org not to generate spurious terminal sequences
Status: NEW
Product: Wikimedia
Classification: Unclassified
Git/Gerrit (Other open bugs)
unspecified
All All
: Lowest minor (vote)
: ---
Assigned To: Marcin Cieślak
http://tools.wikimedia.pl/~saper/fail...
: upstream
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-03-25 02:54 UTC by Marcin Cieślak
Modified: 2014-01-10 13:53 UTC (History)
4 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments

Description Marcin Cieślak 2012-03-25 02:54:42 UTC
I am recording most of my git/gerrit commandline sessions with UNIX script(1) utility to use that later for documentation and/or troubleshooting. 

script has an interesting property that it records all control and terminal characters as it receives them, so I have turned off colors and automatic use of "less" as the page using

$ git config --global color.ui false
$ git config --global core.pager ''

However, when doing "git push" I am still getting some terminal control characters (like ESC [ K meaning "erase to end of line" on *most* terminals) from remote git instance running on gerrit.wikimedia.org.

This is a hexdump of the data received:

0000000: 7265 6d6f 7465 3a20 5265 736f 6c76 696e  remote: Resolvin
0000010: 6720 6465 6c74 6173 3a20 2020 3025 2028  g deltas:   0% (
0000020: 302f 3429 2020 201b 5b4b 0d72 656d 6f74  0/4)   .[K.remot
0000030: 653a 2052 6573 6f6c 7669 6e67 2064 656c  e: Resolving del
0000040: 7461 733a 2020 2030 2520 2830 2f34 291b  tas:   0% (0/4).
0000050: 5b4b 0d0a 7265 6d6f 7465 3a20 4552 524f  [K..remote: ERRO
0000060: 523a 206d 6973 7369 6e67 2043 6861 6e67  R: missing Chang
0000070: 652d 4964 2069 6e20 636f 6d6d 6974 206d  e-Id in commit m
0000080: 6573 7361 6765 1b5b 4b0d 0a72 656d 6f74  essage.[K..remot
0000090: 653a 2053 7567 6765 7374 696f 6e20 666f  e: Suggestion fo
00000a0: 7220 636f 6d6d 6974 206d 6573 7361 6765  r commit message
00000b0: 3a1b 5b4b 0d0a 7265 6d6f 7465 3a20 436f  :.[K..remote: Co
00000c0: 736d 6574 6963 2069 6d70 726f 7665 6d65  smetic improveme
00000d0: 6e74 7320 746f 2050 6f73 7472 6553 514c  nts to PostreSQL
00000e0: 2075 7064 6174 6572 206f 7574 7075 741b   updater output.
00000f0: 5b4b 0d0a 7265 6d6f 7465 3a20 0d0a 7265  [K..remote: ..re
0000100: 6d6f 7465 3a20 2a20 446f 6e27 7420 5741  mote: * Don't WA
0000110: 524e 206f 6e20 7365 7175 656e 6365 7320  RN on sequences 
0000120: 616c 7265 6164 7920 6578 6973 7469 6e67  already existing
0000130: 1b5b 4b0d 0a72 656d 6f74 653a 202a 2041  .[K..remote: * A
0000140: 6c69 676e 2064 6f74 7320 6e69 6365 6c79  lign dots nicely
0000150: 2074 6f20 7468 6520 7265 7374 1b5b 4b0d   to the rest.[K.
0000160: 0a72 656d 6f74 653a 2028 6368 6572 7279  .remote: (cherry
0000170: 2070 6963 6b65 6420 6672 6f6d 2063 6f6d   picked from com
0000180: 6d69 7420 6264 3761 3236 3865 3462 6532  mit bd7a268e4be2
0000190: 6461 3233 6261 3062 3939 3433 6333 6230  da23ba0b9943c3b0
00001a0: 6261 3161 6338 3832 3934 6463 291b 5b4b  ba1ac88294dc).[K
00001b0: 0d0a 7265 6d6f 7465 3a20 0d0a 7265 6d6f  ..remote: ..remo
00001c0: 7465 3a20 4368 616e 6765 2d49 643a 2049  te: Change-Id: I
00001d0: 6133 3534 6163 6438 3739 6333 6464 3834  a354acd879c3dd84
00001e0: 3065 3762 6531 6533 6336 6436 6663 3738  0e7be1e3c6d6fc78
00001f0: 6436 3936 3633 3164 1b5b 4b0d 0a54 6f20  d696631d.[K..To 
0000200: 7373 683a 2f2f 7361 7065 7240 7265 7669  ssh://saper@revi
0000210: 6577 3a32 3934 3138 2f6d 6564 6961 7769  ew:29418/mediawi
0000220: 6b69 2f63 6f72 652e 6769 740d 0a20 2120  ki/core.git.. ! 
0000230: 5b72 656d 6f74 6520 7265 6a65 6374 6564  [remote rejected
0000240: 5d20 4845 4144 202d 3e20 7265 6673 2f66  ] HEAD -> refs/f
0000250: 6f72 2f52 454c 315f 3139 2f50 6f73 7467  or/REL1_19/Postg
0000260: 7265 5351 4c20 286d 6973 7369 6e67 2043  reSQL (missing C
0000270: 6861 6e67 652d 4964 2069 6e20 636f 6d6d  hange-Id in comm
0000280: 6974 206d 6573 7361 6765 290d 0a         it message)..

Looks like setting color.ui to false and core.pager to nothing on 
a remote server (in out case it would be gerrit.wm.org) does not help.
Any hints how to get rid of these?
as using "git push --porcelain"
Comment 1 Antoine "hashar" Musso (WMF) 2012-03-26 08:58:32 UTC
removing block of 22596  (svn to git migration). Not related.
Comment 2 Antoine "hashar" Musso (WMF) 2012-03-26 08:59:35 UTC
Could ESC + ^K  be sent by the git command line or is it only done by Gerrit ? 

In both cases they are upstream issues that you might want to report there instead of WMF Bugzilla :-D
Comment 3 Marcin Cieślak 2012-03-28 02:01:16 UTC
I am still hoping this can be configured somehow. 

Just found this:

17 #define ANSI_SUFFIX "\033[K"
18 #define DUMB_SUFFIX "        "
19
20 #define FIX_SIZE 10  /* large enough for any of the above */
21
22 int recv_sideband(const char *me, int in_stream, int out)
23 {
24         unsigned pf = strlen(PREFIX);
25         unsigned sf;
26         char buf[LARGE_PACKET_MAX + 2*FIX_SIZE];
27         char *suffix, *term;
28         int skip_pf = 0;
29
30         memcpy(buf, PREFIX, pf);
31         term = getenv("TERM");
32         if (term && strcmp(term, "dumb"))
33                 suffix = ANSI_SUFFIX;
34         else
35                 suffix = DUMB_SUFFIX;
36         sf = strlen(suffix);

http://git.kernel.org/?p=git/git.git;a=blob;f=sideband.c;h=d5ffa1c8919a6db750606c78a1b44d8618fa35a5;hb=HEAD#l33

*facepalm*

Need to find out how to set TERM=dumb for git-receive-pack, I hope it's a local client
issue.
Comment 4 Mark A. Hershberger 2012-03-28 19:32:44 UTC
TERM=dumb could be set in the /etc/profile or somewhere similar
Comment 5 Antoine "hashar" Musso (WMF) 2012-03-28 19:33:41 UTC
removing blocking of 22596 (migrate svn to git). That is really a corner case we probably do not want to focus on.

I think upstream git should be fixed and I guess we can just close our local bug.  Is that fine for you sapper ?
Comment 6 Marcin Cieślak 2012-03-30 13:55:42 UTC
Note to self:

http://git.kernel.org/?p=git/git.git;a=commitdiff;h=ebe8fa738dcf6911fe520adce0cfa0cb26dee5e2;hp=140dd77a5cb2e61dcb942e245a2474fae95e42a5

Looks like a client-side issue, but not sure. Will investigate. If there is nothing that could be done on the git/gerrit side, will file upstream.
Comment 7 Chad H. 2012-03-30 13:59:31 UTC
(In reply to comment #6)
> Note to self:
> 
> http://git.kernel.org/?p=git/git.git;a=commitdiff;h=ebe8fa738dcf6911fe520adce0cfa0cb26dee5e2;hp=140dd77a5cb2e61dcb942e245a2474fae95e42a5
> 
> Looks like a client-side issue, but not sure. Will investigate. If there is
> nothing that could be done on the git/gerrit side, will file upstream.

Looks like that may be it. If this is indeed not something we can configure, then I see two real options here:
1) File a bug with msysgit to handle these sequences in a nicer manner
2) File a bug with git to not use this/adjust behavior/etc.

I feel like #1 will be easier, but I don't know the msysgit community.
Comment 8 Chad H. 2012-03-30 14:01:00 UTC
Also worth checking: jgit. I've not delved into their code, so I'm not sure how much wheel reinvention is going on there.
Comment 9 Marcin Cieślak 2012-03-30 20:24:07 UTC
Yes. Locally-set TERM=dump helps to resolve the issue. One cannot live with TERM set this way permanently. 

Let's see what the upstream says:

http://thread.gmane.org/gmane.comp.version-control.git/63343/focus=194365
Comment 10 Andre Klapper 2012-12-19 11:34:25 UTC
[Removing RESOLVED LATER as discussed in http://lists.wikimedia.org/pipermail/wikitech-l/2012-November/064240.html . Reopening and setting priority to "Lowest". For future reference, please use either RESOLVED WONTFIX (for issues that will not be fixed), or simply set lowest priority. Thanks a lot!]
Comment 11 Antoine "hashar" Musso (WMF) 2014-01-10 13:53:14 UTC
(In reply to comment #9)
> Yes. Locally-set TERM=dump helps to resolve the issue. One cannot live with
> TERM set this way permanently. 
> 
> Let's see what the upstream says:
> 
> http://thread.gmane.org/gmane.comp.version-control.git/63343/focus=194365

Marcin, apparently upstream hasn't followed up there. I notice you replied to a thread that was 5 years old, maybe you want to send a new message instead?

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links