Rust rpc error in on projectile attack

Oxide is an abstracted, modular, and extensible mod and plugin framework for any game that uses .NET
  1. Hi,

    how to fix this error (player got kicked for shooting with a weapon)

    MissingFieldException: Field ‘ProtoBuf.Attack.hitItem’ not found.
    7x.2xx.x.x76:5xxx1/76xx119xxxxx48xx0/PxxGaxxr32x kicked: RPC Error:
    onprojectileattack
    [Oxide] 23:46 [Info] [Notifier] [K9] PxxGaxxr32x left the server
    MissingFieldException: Field ‘ProtoBuf.Attack.hitItem’ not found.

    Last edited by a moderator: Mar 25, 2016
  2. Hi, Sorry for my english.

    I come to you because I do the update but since I get this error.

    MissingFieldException: Field ‘ProtoBuf.Attack.hitItem’ not found.

    would you have a solution please ?

    thanks

    Last edited by a moderator: Mar 24, 2016
  3. I just put the tp plugin inside of the correct directory it was working but now it won t work for examples after
    i type ./tpr «name» nothink happen but nothink for real like if i never typed this think …can someone help me to fix that ?

    -BoB,Sorry for my bad english

  4. same here
    when a player hit something

    kicked: RPC Error: on projectileattack
    MissingFieldException: Field ‘ProtoBuf.Attack.hitItem’ not found.

  5. Re-install in the correct directory(Straight from forum), if that doesn’t work try and re-install oxide.

  6. Try remove and reinstall the mod..
    [DOUBLEPOST=1458865286][/DOUBLEPOST]If this happened this morning. Then
    you most likely have not updated oxide today. Oxide is updated every time rust is..

  7. update the server itself through steamcmd.

  8. im getting this come up whenever i shoot or hit anything (Reason: RPC Error: onprojectileattack) can anyone help?
    iv updated oxide but still happening

    everytime i shoot or hit an object with a weapon or axe it shows leigh left the server. (Reason: RPC Error: playerattack) admins and players its happening to so iv
    reinstalled oxide but still happens can anyone help?

    thanks

    Last edited by a moderator: Mar 25, 2016

  9. Wulf

    Wulf
    Community Admin

    Did you update the Rust server before updating Oxide?

  10. i just updated oxide, because updating the server wipes it and i didnt want to wipe the server but looks like i
    might have to


  11. Wulf

    Wulf
    Community Admin

    You can’t update to an incompatible build of Oxide without updating Rust first.

  12. ok i will update my server then do oxide again thank you

  13. I ‘m updating my server then oxide but it still does not go because I always mistake you have a solution?

  14. got it sorted now, update your server then oxide then rust io thats all i done

  15. I even try without plugins but it does not always

  16. still not working here….

    Already updated server + oxide several times. Tried to delete R-Anticheat, doesnt matter. It wont work.

  17. I always have this error

    I tried without plugins

    and also setting a server update and update oxide but it does not work

    sorry if I double post but the other is labeled resolved but me it is not

    (08:17:30) | [Oxide] 08:17 [Info] [Notifier] Deadly left the server (Reason: Kicked: RPC Error: playerattack)
    (08:17:30) | MissingFieldException: Field
    ‘ProtoBuf.Attack.hitItem’ not found.

    thank you very much

    Last edited by a moderator: Mar 28, 2016

Oxide

Since last forced wipe update, players on our modded server are getting kicked with the following error message:

NullReferenceException
  at (wrapper managed-to-native) UnityEngine.Object.GetName(UnityEngine.Object)
  at UnityEngine.Object.get_name () [0x00001] in <0b31faaf1c50461d95c83ac166a20393>:0 
  at CombatLog.Log (BaseEntity attacker, AttackEntity weapon, BaseCombatEntity hitEntity, System.String description, Projectile projectilePrefab, System.Int32 projectileId, System.Single healthOld, HitInfo hitInfo) [0x00125] in <d725728807504da5bebc24cdaa95c779>:0 
  at CombatLog.LogInvalid (HitInfo info, System.String description) [0x00000] in <d725728807504da5bebc24cdaa95c779>:0 
  at BasePlayer.OnProjectileAttack (BaseEntity+RPCMessage msg) [0x00ba4] in <d725728807504da5bebc24cdaa95c779>:0 
  at BasePlayer.OnRpcMessage (BasePlayer player, System.UInt32 rpc, Network.Message msg) [0x00721] in <d725728807504da5bebc24cdaa95c779>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
BasePlayer:OnRpcMessage(BasePlayer, UInt32, Message)
BaseEntity:SV_RPCMessage(UInt32, Message)
ServerMgr:OnRPCMessage(Message)
ServerMgr:OnNetworkMessage(Message)
Facepunch.Network.Raknet.Server:ConnectedPacket(Connection)
Facepunch.Network.Raknet.Server:Cycle()
ServerMgr:Update()

IP:PORT/765611980000000/Player kicked: RPC Error in OnProjectileAttack

This happens when players are getting killed. Most of the time by patrol helicopter, but also by NPC’s and even player kills (headshots I heard?). It happens totally random as far as I could see. Not every kill (it’s occasionally), not always the same player, weapons, location or heli attack mode and weapons, everything is random.

We hoped it was the map we were using, but the problem still occurred after we switched maps.

We already tried vanilla helicopters and unloaded all plugins related to heli and/or weapons.
Some plugin developers were saying it’s a Rust bug and this bug was reported already. Does anyone else have this problem recently? I can’t find anything but a few people recently complaining about this problem, which makes me think it’s not Rust, but on us or our plugins.

If anyone has an idea what could cause this or if you’re experiencing the same problem, please let me know.

  • #1

Когда я скачал плагины RustNET и SecurityCameras, всё было норм, я ставил публичые и нет камеры, но после того, как я прилетел на космодром и попытался поставить ноут, раст вылетел, и не запускался, я перезапустил комп, раст запустился. Не мог зайти на сервер по причине этой ошибки. Перезагрузил сервер, когда зашел, всё было вроде норм, но я не мог шевелить головой. После загрузки плагинов меня выкинула с серва, опять из-за этой ошибки, я его перезапустил, после чего я зашёл на него, было тоже самое. Я загрузил плагин, потом ещё, а когда я загрузил плагин с GUI, выкинуло с сервака.

lomarine


  • #2

Такие ошибки выдаёт когда в плагине косячный GUI

  • #3

Такие ошибки выдаёт когда в плагине косячный GUI

Так почему всё было норм, и вдруг GUI у Всех плагинов оказался косячным?

  • #4

Так почему всё было норм, и вдруг GUI у Всех плагинов оказался косячным?

Тогда почему когда выходит какая то обнова от разрабов раста, потом оксид и большинство плагинов становятся не рабочими?)

  • #5

Глянь, может картинки не хватает какой-то

Alukar


  • #6

обнови плагин . Разработчик все исправил еще вчера утром .

  • #7

обнови плагин . Разработчик все исправил еще вчера утром .

У меня нету новой версии( я плагин удалил, но всё равно та же пурга

Alukar


  • #8

ну потому что обект установлен на карте , а плагина рабочего нет.
Хотите нормальной стабилтной работы плагинов пишите в ЛС дам промокод на хостинг , растнет и весе его плагины в пюнашей панеле управления бесплтны и всегда акутуальной версии

Night_Tiger


  • #9

Когда я скачал плагины RustNET и SecurityCameras, всё было норм, я ставил публичые и нет камеры, но после того, как я прилетел на космодром и попытался поставить ноут, раст вылетел, и не запускался, я перезапустил комп, раст запустился. Не мог зайти на сервер по причине этой ошибки. Перезагрузил сервер, когда зашел, всё было вроде норм, но я не мог шевелить головой. После загрузки плагинов меня выкинула с серва, опять из-за этой ошибки, я его перезапустил, после чего я зашёл на него, было тоже самое. Я загрузил плагин, потом ещё, а когда я загрузил плагин с GUI, выкинуло с сервака.

Ошибка
RPC Error in AddUI

Говорит об отсутствующем элементе при попытке добавить Ui-шку когда пытаетесь использовать чтото(ну или в вашем случае при установленном объекте) или фиксите сами или как сказал выше Алукар велком к ним за авторской версией плагина)

  • #10

Закрывайте тему, я решил перенести серв на хостинг

  • #11

Хотя, нет, не закрывайте, я перенес сервер на хостинг, но проблема не исчезла, а ещё я решил проверить это на других серверах, меня тоже выкидывает с них. Раст переустанавливал

Alukar


  • #12

Хотя, нет, не закрывайте, я перенес сервер на хостинг, но проблема не исчезла, а ещё я решил проверить это на других серверах, меня тоже выкидывает с них. Раст переустанавливал

А чё в тиките молчанка ?

Карту ту же залил ? Если да то скорей всего нужно будет тебе вайпать сервер , ибо старая версия в паре с криво установленным объектом ничего хорошего не сделают .

Или клиент вылетает ?

Последнее редактирование: 23 Апр 2018

  • #13

А чё в тиките молчанка ?

Карту ту же залил ? Если да то скорей всего нужно будет тебе вайпать сервер , ибо старая версия в паре с криво установленным объектом ничего хорошего не сделают .

Или клиент вылетает ?

На чужих серверах тоже, не в моём дело

Alukar


  • #14

На чужих серверах тоже, не в моём дело

Клиент Стим или НоСтим ?

Alukar


  • #16

удали полностью клиент и кеш в стимаапс , и установи заново . И кинь полную ошибку.

  • #17

Если это поможет, у меня линукс

Alukar


  • #18

Если это поможет, у меня линукс

Разницы нет игра работает через эмулятор под никсами .

  • #19

Я нашел инфу, действительно, дело в том, что у меня линукс, надо было добавить LANG=en_US %command% в параметры запуска раст. Сделал так, и всё заработало. Раньше этого не было

Anatoly Piratov


  • #20

А нахрена все эти плагины на сервере? Игрокам они нахер не нужны. Для них нужен стабильный сервер. Без лагов. А вся это дрибидень нах… не нужна.


Форум проекта Alkad.ORG


  • Искать только в заголовках
Сообщения пользователя:

Имена участников (разделяйте запятой).

Новее чем:
  • Искать только в этой теме
  • Искать только в этом разделе
    • Отображать результаты в виде тем

Больше…

Быстрый поиск

  • Последние сообщения

  1. Rust — 23702.02.2023
    HurtWorld — 1.0.0.6 | HurtWorld Legacy — 0.3.8.9
    Решение проблем с Rust
    Решение проблем с HurtWorld
    Как установить Rust
    Как установить Hurtworld
    Как обновить Rust
    Как обновить Hurtworld
    Список серверов Rust
    Список серверов Hurtworld

    Наш канал Discord | Канал GameWer в Discord

    Хостинг игровых серверов

RPC Error

Тема в разделе «Технические вопросы по игре», создана пользователем KosiakS, 10 янв 2016.

Метки:

  • rpc error

  1. KosiakS

    KosiakS




    Expand



    Collapse

    Просвещённый

    Команда форума

    Регистрация:
    11 ноя 2014
    Сообщения:
    1.532
    Симпатии:
    873

    Если у вас появилась ошибка RPC Error, пожалуйста подробно опишите, что вы делали до её появления.

    #1

    KosiakS,
    10 янв 2016

  2. роман94

    роман94




    Expand



    Collapse

    Новичок

    Регистрация:
    17 сен 2015
    Сообщения:
    1
    Симпатии:
    0

    Упал с шара умер и не зареспавнился выдалo вот этот RPC Error

    #2

    роман94,
    10 янв 2016

  3. Undervud

    Undervud




    Expand



    Collapse

    Новичок

    Регистрация:
    9 янв 2016
    Сообщения:
    1
    Симпатии:
    0

    Упал с цистерны(сфера), разбился! Валялся в агонии с 5 хп, сделал тп домой через /sethome. В доме прогрузился и в момент, когда агония прошла и уже можно было встать, выкинуло с этой ошибкой! Больше зайти в игру не удалось, всегда выскакивает RPC Error: onerespawninformation.

    #3

    Undervud,
    10 янв 2016

  4. pavel228

    pavel228




    Expand



    Collapse

    Новичок

    Регистрация:
    12 ноя 2015
    Сообщения:
    1
    Симпатии:
    0

    undetvud у меня тоже самое

    #4

    pavel228,
    10 янв 2016

  5. Myp4uk

    Myp4uk




    Expand



    Collapse

    Новичок

    Регистрация:
    12 янв 2016
    Сообщения:
    1
    Симпатии:
    0

    при подборе тыквы RPC Error
    upd: кукуруза та же ошибка

    #5

    Myp4uk,
    12 янв 2016

    Последнее редактирование: 12 янв 2016

  6. kissmefan

    kissmefan




    Expand



    Collapse

    Новичок

    Регистрация:
    31 дек 2015
    Сообщения:
    1
    Симпатии:
    0

    таже самая байда не могу теперь зайти на сервер

    #6

    kissmefan,
    13 янв 2016

  7. Skill

    Skill




    Expand



    Collapse

    Новичок

    Регистрация:
    2 дек 2015
    Сообщения:
    2
    Симпатии:
    0

    Упал с цистерны на сервере client.connect rust-exp.alkad.org:28015 и выкинуло зашел на сервер загрузка на рецейвинг дате была и кикнуло пишет Disconneced RPC Error: onerespawninformation больше не могу заходить
    Мой Ник CooL

    #7

    Skill,
    13 янв 2016

  8. SIDREY

    SIDREY




    Expand



    Collapse

    Новичок

    Регистрация:
    23 янв 2016
    Сообщения:
    1
    Симпатии:
    0

    Бежал по лесу ночью, под дождём. сильно залагало и вылетел из игры. теперь немагу зайти на скул сервер client.connect rust-exp.alkad.org:6666. что делать??? ник SIDREY. есть какието варианты решения проблемы??????

    #8

    SIDREY,
    2 фев 2016

    Последнее редактирование: 2 фев 2016

  9. KirikTheBest

    KirikTheBest




    Expand



    Collapse

    Постоянный пользователь

    Регистрация:
    26 дек 2016
    Сообщения:
    58
    Симпатии:
    0

    Ты же не разраб)?

    #9

    KirikTheBest,
    31 дек 2016
(Вы должны войти или зарегистрироваться, чтобы ответить.)
Показать игнорируемое содержимое

Поделиться этой страницей

  • Войти через Facebook
  • Войти через VK
  • Войти через Instagram
Ваше имя или e-mail:
У Вас уже есть учётная запись?
  • Нет, зарегистрироваться сейчас.
  • Да, мой пароль:
  • Забыли пароль?

Запомнить меня

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

ian-p-cooke opened this issue

Jul 5, 2017

· 11 comments

Comments

@ian-p-cooke

I’m working through how to get everything hooked up with capnp-rpc-rust and tokio-tls and I have a working proof of concept However, while the TLS version works (the client gets the response) The server always ends the RpcSystem with an error:
rpc error: Error { kind: Failed, description: "connection closed via error" }
That error isn’t present in the no_tls example (in my repo).

Do you have any idea as to why wrapping the RPC connection in TLS would lead to this server error?

(also posted in reddit but thought this might be better as it’s not a language issue)

@ian-p-cooke



Copy link


Contributor

Author

I have some more information. This appears to be a MacOS/SecureTransport error. I can’t find where that string «connection closed via error» is actually built but it matches the comment for error -9806. I tested on Linux just now and the behavior is different: the server’s RpcSystem does finish cleanly for each connection.

So maybe something on the client-side isn’t shutting down the connection cleanly? Does capnp-rpc-rust call AsyncWrite’s shutdown method on the client side? I think that’s where a TLS stream is supposed to have an opportunity to clean up.

@dwrensha

Since capnp-rpc-rust doesn’t depend on tokio-io, there’s no way that it’s calling AsyncWrite::shutdown(). I agree that this is the likely cause of the error.

I can see two ways forward:

  1. We introduce a dependency on tokio-io and update twoparty::VatNetwork::new() to require that its output_stream argument implement AsyncWrite. Then we devise a way to make sure that AsyncWrite::shutdown() gets called during normal shutdown.

  2. We make twoparty::VatNetwork::new() take a futures::Sink<capnp::message::Builder> and a futures::Stream<capnp::message::Reader> instead of input and output byte streams (aka std::io::{Read,Write}). Then we don’t need to introduce a dependency on any tokio crates. The capnp-futures-rs crate would provide facilities for converting from a AsyncRead to a Stream<message::Reader> and for converting from a AsyncWrite to a Sink<message::Builder>, and would do so in a way that makes sure that shutdown() gets called.

@ian-p-cooke



Copy link


Contributor

Author

I was thinking along the lines of (1). The documentation mentions that input_stream and output_stream have to be «futures-enabled» but the signature doesn’t reflect that. However, I was trying to figure out where shutdown would be called from and I couldn’t quite get it; since the output_stream is just passed into a write_queue how is it supposed to know when it’s «done»? I see the terminate method on Sender but don’t know how to get from there to the write_queue‘s output_stream.

@ian-p-cooke



Copy link


Contributor

Author

I’m working on the approach of changing std::io:Write to tokio_io::AsyncWrite and then calling AsyncWrite::shutdown appropriately. Changing the signatures is straightforward (I didn’t get any complaints from examples or tests after the change). However, I haven’t figured out yet when to call shutdown. What’s the correct way of cleanly shutting down the client’s RpcSystem now? I was just letting everything drop in my example but it seems like there should be some way to let the RpcSystem know that I’m done with it before dropping.

@dwrensha

It looks like the change would need to happen in capnp-futures-rs. When a WriteQueue notices that it has no more messages to send (here), it could call AsyncWrite::shutdown() before finally resolving. Getting this to work would probably involve adding at least one new state to the IntermediateState enum.

@ian-p-cooke



Copy link


Contributor

Author

Yes, I think that’s correct and it’s the first thing I tried (well, I just put a couple printlns in where I thought shutdown would be invoked) but my example never gets to that point. After the request runs everything is just dropped and the RpcSystem isn’t polled to completion. That’s why I thought there would have to be something done to the RpcSystem to let it know that I was done with it. Does my question about cleanly shutting down the RpcSystem make sense now? Because I’ve already handed the instance off to handle.spawn I can’t just call a method on it any more so I think I’d have pass in some optional ‘shutdown notifier’ when constructed. I don’t really want to complicate the API because I like how it works now; I’m trying to find the minimum I can do to end up calling shutdown in the correct place just to see if that fixes the issue. I was also thinking it could call shutdown somehow depending on what state it was in when dropped but someone on the tokio gitter suggested that was a bad thing to try and do IO in the drop method. I’ll work on this some more over the weekend.

@dwrensha

Good point. Currently there is no way to shut down an RpcSystem other than dropping it. It sounds like we need to add a way to request a more graceful shutdown that might require waiting on some I/O. I agree that doing I/O in the drop method is not a good idea. My first thought is that we should try splitting RpcSystem into a driver future and handles, similar to how WriteQueue is split. Then dropping all handles would signal shutdown, and the driver future would be able to continue driving the execution as necessary.

Note that it might be tempting to starting depending on tokio_core so that we could pass in a tokio_core::reactor::Handle for spawning a write task, but I think we should resist that temptation.

@dwrensha

If updating the capnp_rpc API sounds like more than you’d like to tackle right now, then maybe you can find some hack to work around the problem on your end. Perhaps it would work to define a wrapper type for your TLS writer object, like this:

struct Wrapper<W> where W: AsyncWrite {
   writer: Option<W>,
   send_on_drop: futures::unsync::oneshot::Sender<W>,
}

impl <W> AsyncWrite for Wrapper<W> where W: AsyncWrite { ... }

impl <W> Drop for Wrapper<W> {
   fn drop(&mut self) {
     if let Wrapper { writer: Some(mut w), send_on_drop: Some(mut s), } = *self {
        s.send(w);
     } else {
      unreachable!()
    }
   }
}

You would wrap your TLS writer with Wrapper before passing it to the RPC system, and then you would spawn a task to wait on the corresponding oneshot::Receiver and then call AsyncWrite::shutdown() when it receives the writer.

@dwrensha

Hm… it might also be possible to achieve what you want with a minimal update to the capnp_rpc API. Maybe we could add a method on RpcSystem:

impl RpcSystem {
    fn get_disconnector(&self) -> Disconnector { ... }
}

This Disconnector struct would hold a reference to the ConnectionState and would be able to call disconnect() on it, which should trigger a graceful shutdown.

You would then be able to grab a Disconnector before you push the RpcSystem onto a spawned task.

@ian-p-cooke



Copy link


Contributor

Author

I went the Disconnector route and that works well, better than expected even: the connection no longer errors out on the server side even though I didn’t call the AsyncWrite::shutdown method! I’m guessing that’s because the capnp ‘abort’ message triggers the server to close the connection instead but I haven’t dug into that yet. The only thing I had to do that was unexpected was to make sure the tokio core event loop turned again after the disconnect. I think that’s to get the last write out the door and maybe get the disconnect_fulfiller to run. I was thinking that I’d make Disconnector a future and then my poll wouldn’t return ready until *connection_state.borrow() matched None.

What do you think about calling shutdown in light of the new disconnect behavior? I feel like it’s still the right/clean thing to do but since it isn’t actually a problem now I’m inclined to leave the signatures as Write.

@dwrensha

I went the Disconnector route and that works well, better than expected even: the connection no longer errors out on the server side even though I didn’t call the AsyncWrite::shutdown method! I’m guessing that’s because the capnp ‘abort’ message triggers the server to close the connection instead but I haven’t dug into that yet.

Interesting! Please keep me posted if you get a better picture of what’s going on.

What do you think about calling shutdown in light of the new disconnect behavior?

If we can get away for now with just adding a get_disconnector() method and not changing the trait requirements on existing methods, then we can avoid the need to bump the version to 0.9, which would be nice. (I’d like to keep the (most significant) version numbers synced between the capnp, capnpc, and capnp-rpc` crates.)

2 participants

@dwrensha

@ian-p-cooke

Понравилась статья? Поделить с друзьями:
  • Rust result error
  • Rust print error
  • Rust launcher error loading error startservice failed 1450
  • Rust launcher error launcher network error could not connect to the easyanticheat network
  • Rust has encountered an error and must close как исправить windows 10