'keyUp' is broken on Arch?

Has anyone had issues with keyUp not registering all keys released on (unix/manjaro/arch)?
I have posted the issue here.
To summarize:
I have a simple project which is using both keyDown and keyUp functions to get key pressed state. However, when multiple keys (which are being pressed) are released, the keyUp only recognizes the first key released, and seems to ignore the rest. Here is a simple code:

//KEY DOWN
void Test::keyDown(KeyEvent key_event){
  if (key_event.getCode()==KeyEvent::KEY_w){
//do something
  }
  if (key_event.getCode()==KeyEvent::KEY_s){
//do something
  }
  if (key_event.getCode()==KeyEvent::KEY_a){
//do something
  }
  if (key_event.getCode()==KeyEvent::KEY_d){
//do something
  }
}

//KEY UP
void Test::keyUp(KeyEvent key_event){
  std::cout << key_event.getChar() << '\n';
}

printing the key_event.getChar() to the console only seems to print the first key released, and discards the others.
I am doing something wrong here, or is it a bug?