I found a regression related to commit titled "Fix bug #17892 with mode/header line and display margins."
https://github.com/emacs-mirror/emacs/commit/691d7ac6784

Steps to reproduce:
1. emacs -Q
2. Evaluate the following code to make the mini-buffer becomes multi-line.

;; https://github.com/gempesaw/ido-vertical-mode.el/blob/master/ido-vertical-mode.el#L45
(setq ido-decorations
      '("\n-> " ; left bracket around prospect list
    "" ; right bracket around prospect list
    "\n " ; separator between prospects, depends on `ido-separator`
    "\n ..." ; inserted at the end of a truncated list of prospects
    "[" ; left bracket around common match string
    "]" ; right bracket around common match string
    " [No match]"
    " [Matched]"
    " [Not readable]"
    " [Too big]"
    " [Confirm]"
    "\n-> " ; left bracket around the sole remaining completion
    "" ; right bracket around the sole remaining completion
    ))
(ido-mode 1)
(global-linum-mode 1)

3. Open a large file such as src/dispextern.h in Emacs repository.
4. C-x C-f to find files (Notice the mini-buffer now becomes multi-line, and push the mode-line up. See multi_line_mini_buffer.png as attached.)
5. C-g to quit (the mini-buffer has one line again)
6. The line number 30 disappear, and the content of the line shifts left a little bit. (See line_30_missing.png) The line number at the area is always missing even if you scroll the file down.