Odd vertical gap with multicol, scrreprt and parskip=half

This is fairly standard multicols behaviour when the text in the first column is short:

Sample output

\documentclass{article}
\usepackage{multicol}
\begin{document}

\begin{multicols}{2}
  \subsubsection{title}
  Broken text that spreads over two lines to demonstrate behaviour.
  \columnbreak
  \subsubsection{title}
  foo
\end{multicols}

\begin{multicols}{2}
  \subsubsection{title}
  Broken text that spreads over two lines to demonstrate behaviour.
Now extended to another line.
  \columnbreak
  \subsubsection{title}
  foo
\end{multicols}

\end{document}

The \subsection has stretchable glue after it, and multicols uses it in the first example to try to balance the bottom of the columns. When the difference is greater, there is not enough glue to achieve this. (In your example you are seeing a larger vertical space as there is more glue available when the parskip=half option is set; suprisingly much as @lockstep points out.)

To over come this there is actually a simple solution using the \raggedcolumns command of multicol:

Sample ragged output

\documentclass{article}
\usepackage{multicol}
\begin{document}

\begin{multicols}{2}
  \raggedcolumns
  \subsubsection{title}
  Broken text that spreads over two lines to demonstrate behaviour.
  \columnbreak
  \subsubsection{title}
  foo
\end{multicols}

Text below
\end{document}

I have added text below the multicols to demonstrate that there is no flushing of the page in this case, in contrast to the multicols* environment.


While I can't tell what's going on, I can offer a workaround based on the fact that things work as expected with parskip=full: Reduce the stretchability included in the definition of parskip=half (plus 0.5\baselineskip) to that of parskip=full (plus 0.1\baselineskip).

\documentclass[parskip=half]{scrreprt}
\makeatletter
      \setparsizes{\z@}{.5\baselineskip \@plus .1\baselineskip}{%
        1em \@plus 1fil}%
\makeatother
\usepackage{multicol}
\begin{document}

\begin{multicols}{2}
        \subsubsection{title}
        this \\
        is \\
        a long \\
        text
\vfill
\columnbreak
        \subsubsection{title}
        foo
\end{multicols}

\end{document}

enter image description here