OK, definitely a bug (at least on my linux system with Godot 3.0.2). I have wrote a small test script, could anyone please test this and post if it is working as intended? WIth key_u it is doing it's job like expected, with "shift" it does not recognize that key was released...
action("shift") == SHIFT Key
action("key_u") == any key from a to z
func _physics_process(delta):
if Input.is_action_just_pressed("shift"):
print("shift pressed")
if Input.is_action_just_released("shift"):
print("shift released")
if Input.is_action_just_pressed("key_u"):
print("key_u pressed")
if Input.is_action_just_released("key_u"):
print("key_u released")
Edit:
After some more testing I now definitely know, what causes that issue. I am using the german neo 2 keyboard layout. If switching to "qwert" layout, it is working perfectly. Anyone knows if a workaround is existing?