Skip to content

chore(gradle): bump com.google.protobuf:protobuf-java #1583

chore(gradle): bump com.google.protobuf:protobuf-java

chore(gradle): bump com.google.protobuf:protobuf-java #1583

Status Failure
Total duration 1h 30m 13s
Artifacts 20
Matrix: nightly
Fit to window
Zoom out
Zoom in

Annotations

7 errors
nightly (check, 17)
Process completed with exit code 1.
nightly (check, 21)
Process completed with exit code 1.
nightly (check, 11)
Process completed with exit code 1.
nightly (check, 23)
Process completed with exit code 1.
tests/test_kafka_consumer.py.test_protobuf_spec [regular]: tests/test_kafka_consumer/KafkaConsumerTestCase#L1
failed to consume a Kafka stream. : RuntimeError: java.lang.VerifyError: Bad type on operand stack Traceback (most recent call last): File "/python/deephaven/stream/kafka/consumer.py", line 258, in _consume j_table=_JKafkaTools.consumeToTable( RuntimeError: java.lang.VerifyError: Bad type on operand stack Exception Details: Location: io/confluent/kafka/schemaregistry/protobuf/ProtobufSchema.toMessage(Lcom/google/protobuf/DescriptorProtos$FileDescriptorProto;Lcom/google/protobuf/DescriptorProtos$DescriptorProto;)Lcom/squareup/wire/schema/internal/parser/MessageElement; @679: invokestatic Reason: Type 'com/google/protobuf/DescriptorProtos$MessageOptions' (current frame, stack[1]) is not assignable to 'com/google/protobuf/GeneratedMessageV3$ExtendableMessage' Current Frame: bci: @679 flags: { } locals: { 'com/google/protobuf/DescriptorProtos$FileDescriptorProto', 'com/google/protobuf/DescriptorProtos$DescriptorProto', 'java/lang/String', 'com/google/common/collect/ImmutableList$Builder', 'com/google/common/collect/ImmutableList$Builder', 'com/google/common/collect/ImmutableList$Builder', 'com/google/common/collect/ImmutableList$Builder', 'java/util/LinkedHashMap', 'java/util/List', 'com/google/common/collect/ImmutableList$Builder' } stack: { 'com/google/common/collect/ImmutableList$Builder', 'com/google/protobuf/DescriptorProtos$MessageOptions' } Bytecode: 0000000: 2bb6 010d 4db2 001e 1301 0e2c b901 0f03 0000010: 00b8 0063 4eb8 0063 3a04 b800 633a 05b8 0000020: 0063 3a06 bb00 c759 b700 c83a 072b b601 0000030: 10b9 0053 0100 3a08 1908 b900 5401 0099 0000040: 0020 1908 b900 5501 00c0 0111 3a09 1907 0000050: 1909 b601 12b8 0063 b601 1357 a7ff dcbb 0000060: 0114 5919 07b6 0115 b701 163a 082b b601 0000070: 17b9 0053 0100 3a09 1909 b900 5401 0099 0000080: 005b 1909 b900 5501 00c0 00c9 3a0a 190a 0000090: b601 1899 0034 190a b601 199a 002c 2a19 00000a0: 0a04 b800 ce3a 0b19 0819 0ab6 011a b900 00000b0: 7302 00c0 00d0 b900 d401 00c0 00cd 190b 00000c0: b600 6757 a700 132a 190a 03b8 00ce 3a0b 00000d0: 2d19 0bb6 0067 57a7 ffa1 2bb6 011b b900 00000e0: 5301 003a 0919 09b9 0054 0100 9900 2219 00000f0: 09b9 0055 0100 c000 653a 0a2a 190a b800 0000100: 663a 0b19 0419 0bb6 0067 57a7 ffda 2bb6 0000110: 011c b900 5301 003a 0919 09b9 0054 0100 0000120: 9900 2119 09b9 0055 0100 c000 693a 0a19 0000130: 0ab8 006a 3a0b 1904 190b b600 6757 a7ff 0000140: db2b b601 1db9 0053 0100 3a09 1909 b900 0000150: 5401 0099 0021 1909 b900 5501 00c0 011e 0000160: 3a0a 190a b801 1f3a 0b19 0519 0bb6 0067 0000170: 57a7 ffdb 2bb6 0120 b901 2101 003a 0919 0000180: 09b9 0054 0100 9900 2d19 09b9 0055 0100 0000190: c000 743a 0abb 0122 59b2 0043 12d3 190a 00001a0: b801 23b7 0124 3a0b 1905 190b b600 6757 00001b0: a7ff cf2b b601 25b9 0053 0100 3a09 1909 00001c0: b900 5401 0099 0021 1909 b900 5501 00c0 00001d0: 0126 3a0a 190a b801 273a 0b19 0619 0bb6 00001e0: 0067 57a7 ffdb b800 633a 092b b601 28b6 00001f0: 0129 9900 25bb 0079 5913 012a b200 832b 0000200: b601 28b6 012b b800 8503 b700 7d3a 0a19 0000210: 0919 0ab6 0067 572b b601 28b6 012c 9900 0000220: 24bb 0079 5912 a0b2 0083 2bb6 0128 b601 0000230: 2db8 0085 03b7 007d 3a0a 1909 190a b600 0000240: 6757 2bb6 0128 b601 2e99 0025 bb00 7959 0000250: 1301 2fb2 0083 2bb6 0128 b601 30b8 0085 0000260: 03b7 007d 3a0a 1909 190a b600 6757 2bb6 0000270: 0128 b201 31b6 0132 9900 292b b601 28b2 0000280: 0131 b601 33c0 00bd 3a0a 1301 3419 0ab8 0000290: 00bf 3a0b 190b c600 0b19 0919 0bb6 0067 00002a0: 5719 092b b601 28b8 00c0 b600 c157 2a2b 00002b0: b601 35b8 00c3 3a0a bb01 3659 b200 432c 00002c0: 12d3 1904 b600 c519 09b6 00c5 1905 b600 00002d0: c52d b600 c519 08b9 00e9 0100 ba01 3700 00002e0: 00b9 00eb 0200 ba01 3800 00b9 00d8 0200 00002f0: b800 dbb9 0017 0200 c000 dc19 06b6 00c5 0000300: b800 0419 0ab6 00c5 b701 39b0 Stackmap Table: full_frame(@56,{Object[#1220],Object[#1305],Object[#1106],Object[#1219],Object[#1219],Object[#1219],Object[#1219],Object[#1306],Object[#1170]},{}) chop_frame(@95,1) append_frame(@120,Object[#1107],Object[#1170]) append_frame(@199,Object[#1307]) chop_frame(@215,1) chop_frame(@218,1) append_frame(@229,Object[#1170]) chop_frame(@270,1) append_frame(@281,Object[#1170]) chop_frame(@321,1) append_frame(@332,Object[#1170]) chop_frame(@372,1) append_frame(@383,Object[#1170]) chop_frame(@435,1) append_frame(@446,Object[#1170]) chop_frame(@486,1) append_frame(@535,Object[#1219]) same_frame(@578) same_frame(@622) same_frame(@673) at io.confluent.kafka.schemaregistry.protobuf.ProtobufSchemaProvider.parseSchemaOrElseThrow(ProtobufSchemaProvider.java:38) at io.confluent.kafka.schemaregistry.SchemaProvider.parseSchema(SchemaProvider.java:75) at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.parseSchema(CachedSchemaRegistryClient.java:301) at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getSchemaByIdFromRegistry(CachedSchemaRegistryClient.java:340) at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getSchemaBySubjectAndId(CachedSchemaRegistryClient.java:464) at io.deephaven.kafka.ProtobufImpl.descriptor(ProtobufImpl.java:230) at io.deephaven.kafka.ProtobufImpl$ProtobufConsumeImpl.setDescriptor(ProtobufImpl.java:117) at io.deephaven.kafka.ProtobufImpl$ProtobufConsumeImpl.getDeserializer(ProtobufImpl.java:101) at io.deephaven.kafka.KafkaTools.getConsumeStruct(KafkaTools.java:1257) at io.deephaven.kafka.KafkaTools.consume(KafkaTools.java:1347) at io.deephaven.kafka.KafkaTools.consumeToTable(KafkaTools.java:1020)
tests/test_kafka_consumer.py.test_protobuf_spec [include /foo /bar]: tests/test_kafka_consumer/KafkaConsumerTestCase#L1
failed to consume a Kafka stream. : RuntimeError: java.lang.VerifyError: Bad type on operand stack Traceback (most recent call last): File "/python/deephaven/stream/kafka/consumer.py", line 258, in _consume j_table=_JKafkaTools.consumeToTable( RuntimeError: java.lang.VerifyError: Bad type on operand stack Exception Details: Location: io/confluent/kafka/schemaregistry/protobuf/ProtobufSchema.toMessage(Lcom/google/protobuf/DescriptorProtos$FileDescriptorProto;Lcom/google/protobuf/DescriptorProtos$DescriptorProto;)Lcom/squareup/wire/schema/internal/parser/MessageElement; @679: invokestatic Reason: Type 'com/google/protobuf/DescriptorProtos$MessageOptions' (current frame, stack[1]) is not assignable to 'com/google/protobuf/GeneratedMessageV3$ExtendableMessage' Current Frame: bci: @679 flags: { } locals: { 'com/google/protobuf/DescriptorProtos$FileDescriptorProto', 'com/google/protobuf/DescriptorProtos$DescriptorProto', 'java/lang/String', 'com/google/common/collect/ImmutableList$Builder', 'com/google/common/collect/ImmutableList$Builder', 'com/google/common/collect/ImmutableList$Builder', 'com/google/common/collect/ImmutableList$Builder', 'java/util/LinkedHashMap', 'java/util/List', 'com/google/common/collect/ImmutableList$Builder' } stack: { 'com/google/common/collect/ImmutableList$Builder', 'com/google/protobuf/DescriptorProtos$MessageOptions' } Bytecode: 0000000: 2bb6 010d 4db2 001e 1301 0e2c b901 0f03 0000010: 00b8 0063 4eb8 0063 3a04 b800 633a 05b8 0000020: 0063 3a06 bb00 c759 b700 c83a 072b b601 0000030: 10b9 0053 0100 3a08 1908 b900 5401 0099 0000040: 0020 1908 b900 5501 00c0 0111 3a09 1907 0000050: 1909 b601 12b8 0063 b601 1357 a7ff dcbb 0000060: 0114 5919 07b6 0115 b701 163a 082b b601 0000070: 17b9 0053 0100 3a09 1909 b900 5401 0099 0000080: 005b 1909 b900 5501 00c0 00c9 3a0a 190a 0000090: b601 1899 0034 190a b601 199a 002c 2a19 00000a0: 0a04 b800 ce3a 0b19 0819 0ab6 011a b900 00000b0: 7302 00c0 00d0 b900 d401 00c0 00cd 190b 00000c0: b600 6757 a700 132a 190a 03b8 00ce 3a0b 00000d0: 2d19 0bb6 0067 57a7 ffa1 2bb6 011b b900 00000e0: 5301 003a 0919 09b9 0054 0100 9900 2219 00000f0: 09b9 0055 0100 c000 653a 0a2a 190a b800 0000100: 663a 0b19 0419 0bb6 0067 57a7 ffda 2bb6 0000110: 011c b900 5301 003a 0919 09b9 0054 0100 0000120: 9900 2119 09b9 0055 0100 c000 693a 0a19 0000130: 0ab8 006a 3a0b 1904 190b b600 6757 a7ff 0000140: db2b b601 1db9 0053 0100 3a09 1909 b900 0000150: 5401 0099 0021 1909 b900 5501 00c0 011e 0000160: 3a0a 190a b801 1f3a 0b19 0519 0bb6 0067 0000170: 57a7 ffdb 2bb6 0120 b901 2101 003a 0919 0000180: 09b9 0054 0100 9900 2d19 09b9 0055 0100 0000190: c000 743a 0abb 0122 59b2 0043 12d3 190a 00001a0: b801 23b7 0124 3a0b 1905 190b b600 6757 00001b0: a7ff cf2b b601 25b9 0053 0100 3a09 1909 00001c0: b900 5401 0099 0021 1909 b900 5501 00c0 00001d0: 0126 3a0a 190a b801 273a 0b19 0619 0bb6 00001e0: 0067 57a7 ffdb b800 633a 092b b601 28b6 00001f0: 0129 9900 25bb 0079 5913 012a b200 832b 0000200: b601 28b6 012b b800 8503 b700 7d3a 0a19 0000210: 0919 0ab6 0067 572b b601 28b6 012c 9900 0000220: 24bb 0079 5912 a0b2 0083 2bb6 0128 b601 0000230: 2db8 0085 03b7 007d 3a0a 1909 190a b600 0000240: 6757 2bb6 0128 b601 2e99 0025 bb00 7959 0000250: 1301 2fb2 0083 2bb6 0128 b601 30b8 0085 0000260: 03b7 007d 3a0a 1909 190a b600 6757 2bb6 0000270: 0128 b201 31b6 0132 9900 292b b601 28b2 0000280: 0131 b601 33c0 00bd 3a0a 1301 3419 0ab8 0000290: 00bf 3a0b 190b c600 0b19 0919 0bb6 0067 00002a0: 5719 092b b601 28b8 00c0 b600 c157 2a2b 00002b0: b601 35b8 00c3 3a0a bb01 3659 b200 432c 00002c0: 12d3 1904 b600 c519 09b6 00c5 1905 b600 00002d0: c52d b600 c519 08b9 00e9 0100 ba01 3700 00002e0: 00b9 00eb 0200 ba01 3800 00b9 00d8 0200 00002f0: b800 dbb9 0017 0200 c000 dc19 06b6 00c5 0000300: b800 0419 0ab6 00c5 b701 39b0 Stackmap Table: full_frame(@56,{Object[#1220],Object[#1305],Object[#1106],Object[#1219],Object[#1219],Object[#1219],Object[#1219],Object[#1306],Object[#1170]},{}) chop_frame(@95,1) append_frame(@120,Object[#1107],Object[#1170]) append_frame(@199,Object[#1307]) chop_frame(@215,1) chop_frame(@218,1) append_frame(@229,Object[#1170]) chop_frame(@270,1) append_frame(@281,Object[#1170]) chop_frame(@321,1) append_frame(@332,Object[#1170]) chop_frame(@372,1) append_frame(@383,Object[#1170]) chop_frame(@435,1) append_frame(@446,Object[#1170]) chop_frame(@486,1) append_frame(@535,Object[#1219]) same_frame(@578) same_frame(@622) same_frame(@673) at io.confluent.kafka.schemaregistry.protobuf.ProtobufSchemaProvider.parseSchemaOrElseThrow(ProtobufSchemaProvider.java:38) at io.confluent.kafka.schemaregistry.SchemaProvider.parseSchema(SchemaProvider.java:75) at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.parseSchema(CachedSchemaRegistryClient.java:301) at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getSchemaByIdFromRegistry(CachedSchemaRegistryClient.java:340) at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getSchemaBySubjectAndId(CachedSchemaRegistryClient.java:464) at io.deephaven.kafka.ProtobufImpl.descriptor(ProtobufImpl.java:230) at io.deephaven.kafka.ProtobufImpl$ProtobufConsumeImpl.setDescriptor(ProtobufImpl.java:117) at io.deephaven.kafka.ProtobufImpl$ProtobufConsumeImpl.getDeserializer(ProtobufImpl.java:101) at io.deephaven.kafka.KafkaTools.getConsumeStruct(KafkaTools.java:1257) at io.deephaven.kafka.KafkaTools.consume(KafkaTools.java:1347) at io.deephaven.kafka.KafkaTools.consumeToTable(KafkaTools.java:1020)
tests/test_kafka_consumer.py.test_protobuf_spec [include /ts /sub/*]: tests/test_kafka_consumer/KafkaConsumerTestCase#L1
failed to consume a Kafka stream. : RuntimeError: java.lang.VerifyError: Bad type on operand stack Traceback (most recent call last): File "/python/deephaven/stream/kafka/consumer.py", line 258, in _consume j_table=_JKafkaTools.consumeToTable( RuntimeError: java.lang.VerifyError: Bad type on operand stack Exception Details: Location: io/confluent/kafka/schemaregistry/protobuf/ProtobufSchema.toMessage(Lcom/google/protobuf/DescriptorProtos$FileDescriptorProto;Lcom/google/protobuf/DescriptorProtos$DescriptorProto;)Lcom/squareup/wire/schema/internal/parser/MessageElement; @679: invokestatic Reason: Type 'com/google/protobuf/DescriptorProtos$MessageOptions' (current frame, stack[1]) is not assignable to 'com/google/protobuf/GeneratedMessageV3$ExtendableMessage' Current Frame: bci: @679 flags: { } locals: { 'com/google/protobuf/DescriptorProtos$FileDescriptorProto', 'com/google/protobuf/DescriptorProtos$DescriptorProto', 'java/lang/String', 'com/google/common/collect/ImmutableList$Builder', 'com/google/common/collect/ImmutableList$Builder', 'com/google/common/collect/ImmutableList$Builder', 'com/google/common/collect/ImmutableList$Builder', 'java/util/LinkedHashMap', 'java/util/List', 'com/google/common/collect/ImmutableList$Builder' } stack: { 'com/google/common/collect/ImmutableList$Builder', 'com/google/protobuf/DescriptorProtos$MessageOptions' } Bytecode: 0000000: 2bb6 010d 4db2 001e 1301 0e2c b901 0f03 0000010: 00b8 0063 4eb8 0063 3a04 b800 633a 05b8 0000020: 0063 3a06 bb00 c759 b700 c83a 072b b601 0000030: 10b9 0053 0100 3a08 1908 b900 5401 0099 0000040: 0020 1908 b900 5501 00c0 0111 3a09 1907 0000050: 1909 b601 12b8 0063 b601 1357 a7ff dcbb 0000060: 0114 5919 07b6 0115 b701 163a 082b b601 0000070: 17b9 0053 0100 3a09 1909 b900 5401 0099 0000080: 005b 1909 b900 5501 00c0 00c9 3a0a 190a 0000090: b601 1899 0034 190a b601 199a 002c 2a19 00000a0: 0a04 b800 ce3a 0b19 0819 0ab6 011a b900 00000b0: 7302 00c0 00d0 b900 d401 00c0 00cd 190b 00000c0: b600 6757 a700 132a 190a 03b8 00ce 3a0b 00000d0: 2d19 0bb6 0067 57a7 ffa1 2bb6 011b b900 00000e0: 5301 003a 0919 09b9 0054 0100 9900 2219 00000f0: 09b9 0055 0100 c000 653a 0a2a 190a b800 0000100: 663a 0b19 0419 0bb6 0067 57a7 ffda 2bb6 0000110: 011c b900 5301 003a 0919 09b9 0054 0100 0000120: 9900 2119 09b9 0055 0100 c000 693a 0a19 0000130: 0ab8 006a 3a0b 1904 190b b600 6757 a7ff 0000140: db2b b601 1db9 0053 0100 3a09 1909 b900 0000150: 5401 0099 0021 1909 b900 5501 00c0 011e 0000160: 3a0a 190a b801 1f3a 0b19 0519 0bb6 0067 0000170: 57a7 ffdb 2bb6 0120 b901 2101 003a 0919 0000180: 09b9 0054 0100 9900 2d19 09b9 0055 0100 0000190: c000 743a 0abb 0122 59b2 0043 12d3 190a 00001a0: b801 23b7 0124 3a0b 1905 190b b600 6757 00001b0: a7ff cf2b b601 25b9 0053 0100 3a09 1909 00001c0: b900 5401 0099 0021 1909 b900 5501 00c0 00001d0: 0126 3a0a 190a b801 273a 0b19 0619 0bb6 00001e0: 0067 57a7 ffdb b800 633a 092b b601 28b6 00001f0: 0129 9900 25bb 0079 5913 012a b200 832b 0000200: b601 28b6 012b b800 8503 b700 7d3a 0a19 0000210: 0919 0ab6 0067 572b b601 28b6 012c 9900 0000220: 24bb 0079 5912 a0b2 0083 2bb6 0128 b601 0000230: 2db8 0085 03b7 007d 3a0a 1909 190a b600 0000240: 6757 2bb6 0128 b601 2e99 0025 bb00 7959 0000250: 1301 2fb2 0083 2bb6 0128 b601 30b8 0085 0000260: 03b7 007d 3a0a 1909 190a b600 6757 2bb6 0000270: 0128 b201 31b6 0132 9900 292b b601 28b2 0000280: 0131 b601 33c0 00bd 3a0a 1301 3419 0ab8 0000290: 00bf 3a0b 190b c600 0b19 0919 0bb6 0067 00002a0: 5719 092b b601 28b8 00c0 b600 c157 2a2b 00002b0: b601 35b8 00c3 3a0a bb01 3659 b200 432c 00002c0: 12d3 1904 b600 c519 09b6 00c5 1905 b600 00002d0: c52d b600 c519 08b9 00e9 0100 ba01 3700 00002e0: 00b9 00eb 0200 ba01 3800 00b9 00d8 0200 00002f0: b800 dbb9 0017 0200 c000 dc19 06b6 00c5 0000300: b800 0419 0ab6 00c5 b701 39b0 Stackmap Table: full_frame(@56,{Object[#1220],Object[#1305],Object[#1106],Object[#1219],Object[#1219],Object[#1219],Object[#1219],Object[#1306],Object[#1170]},{}) chop_frame(@95,1) append_frame(@120,Object[#1107],Object[#1170]) append_frame(@199,Object[#1307]) chop_frame(@215,1) chop_frame(@218,1) append_frame(@229,Object[#1170]) chop_frame(@270,1) append_frame(@281,Object[#1170]) chop_frame(@321,1) append_frame(@332,Object[#1170]) chop_frame(@372,1) append_frame(@383,Object[#1170]) chop_frame(@435,1) append_frame(@446,Object[#1170]) chop_frame(@486,1) append_frame(@535,Object[#1219]) same_frame(@578) same_frame(@622) same_frame(@673) at io.confluent.kafka.schemaregistry.protobuf.ProtobufSchemaProvider.parseSchemaOrElseThrow(ProtobufSchemaProvider.java:38) at io.confluent.kafka.schemaregistry.SchemaProvider.parseSchema(SchemaProvider.java:75) at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.parseSchema(CachedSchemaRegistryClient.java:301) at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getSchemaByIdFromRegistry(CachedSchemaRegistryClient.java:340) at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getSchemaBySubjectAndId(CachedSchemaRegistryClient.java:464) at io.deephaven.kafka.ProtobufImpl.descriptor(ProtobufImpl.java:230) at io.deephaven.kafka.ProtobufImpl$ProtobufConsumeImpl.setDescriptor(ProtobufImpl.java:117) at io.deephaven.kafka.ProtobufImpl$ProtobufConsumeImpl.getDeserializer(ProtobufImpl.java:101) at io.deephaven.kafka.KafkaTools.getConsumeStruct(KafkaTools.java:1257) at io.deephaven.kafka.KafkaTools.consume(KafkaTools.java:1347) at io.deephaven.kafka.KafkaTools.consumeToTable(KafkaTools.java:1020)

Artifacts

Produced during runtime
Name Size
nightly-check-java11-ci-jvm-err
46.4 KB
nightly-check-java11-ci-results
3.26 MB
nightly-check-java17-ci-jvm-err
46.4 KB
nightly-check-java17-ci-results
3.27 MB
nightly-check-java21-ci-jvm-err
46.4 KB
nightly-check-java21-ci-results
3.26 MB
nightly-check-java23-ci-jvm-err
46.4 KB
nightly-check-java23-ci-results
3.27 MB
nightly-testOutOfBand-java11-ci-results
1.13 MB
nightly-testOutOfBand-java17-ci-results
1.13 MB
nightly-testOutOfBand-java21-ci-results
1.13 MB
nightly-testOutOfBand-java23-ci-results
1.13 MB
nightly-testParallel-java11-ci-results
157 KB
nightly-testParallel-java17-ci-results
158 KB
nightly-testParallel-java21-ci-results
158 KB
nightly-testParallel-java23-ci-results
158 KB
nightly-testSerial-java11-ci-results
897 KB
nightly-testSerial-java17-ci-results
900 KB
nightly-testSerial-java21-ci-results
894 KB
nightly-testSerial-java23-ci-results
897 KB