Bug in memcached-1.0 ?

[email protected] (Nathan Nobbe)
Newsgroups php.pecl.dev
Message-ID <[email protected]>
Hi,

I finally got a minute to build the new memcached extension today.  There
were a few warnings when i ran make, and one error which lead me into the
source to resolve.

on line 1783 of php_memcached.c,

i_obj->memc->hash = 0;

was raising the error: ‘memcached_st’ has no member named ‘hash’

a quick peak at the source of libmemcached-0.38 (what i built against) shows
its not part of the struct.  i commented out the line and was able to build
the extension.  not sure what to do about it for a proper fix tho...

-nathan

struct memcached_st {
  /**
    @note these are static and should not change without a call to behavior.
  */
  struct {
    bool is_purging MEMCACHED_BITFIELD;
    bool is_processing_input MEMCACHED_BITFIELD;
  } state;
  struct {
    // Everything below here is pretty static.
    bool auto_eject_hosts MEMCACHED_BITFIELD;
    bool binary_protocol MEMCACHED_BITFIELD;
    bool buffer_requests MEMCACHED_BITFIELD;
    bool cork MEMCACHED_BITFIELD;
    bool hash_with_prefix_key MEMCACHED_BITFIELD;
    bool ketama_weighted MEMCACHED_BITFIELD;
    bool no_block MEMCACHED_BITFIELD;
    bool no_reply MEMCACHED_BITFIELD;
    bool randomize_replica_read MEMCACHED_BITFIELD;
    bool reuse_memory MEMCACHED_BITFIELD;
    bool support_cas MEMCACHED_BITFIELD;
    bool tcp_nodelay MEMCACHED_BITFIELD;
    bool use_cache_lookups MEMCACHED_BITFIELD;
    bool use_sort_hosts MEMCACHED_BITFIELD;
    bool use_udp MEMCACHED_BITFIELD;
    bool verify_key MEMCACHED_BITFIELD;
  } flags;
  memcached_server_distribution_t distribution;
  hashkit_st hashkit;
  uint32_t continuum_points_counter; // Ketama
  uint32_t number_of_hosts;
  memcached_server_st *servers;
  memcached_server_st *last_disconnected_server;
  int32_t snd_timeout;
  int32_t rcv_timeout;
  uint32_t server_failure_limit;
  uint32_t io_msg_watermark;
  uint32_t io_bytes_watermark;
  uint32_t io_key_prefetch;
  int cached_errno;
  int32_t poll_timeout;
  int32_t connect_timeout;
  int32_t retry_timeout;
  uint32_t continuum_count; // Ketama
  int send_size;
  int recv_size;
  void *user_data;
  time_t next_distribution_rebuild; // Ketama
  size_t prefix_key_length;
  uint32_t number_of_replicas;
  hashkit_st distribution_hashkit;
  memcached_result_st result;
  memcached_continuum_item_st *continuum; // Ketama

  struct _allocators_st {
    memcached_calloc_fn calloc;
    memcached_free_fn free;
    memcached_malloc_fn malloc;
    memcached_realloc_fn realloc;
    void *context;
  } allocators;

  memcached_clone_fn on_clone;
  memcached_cleanup_fn on_cleanup;
  memcached_trigger_key_fn get_key_failure;
  memcached_trigger_delete_key_fn delete_trigger;
  memcached_callback_st *callbacks;
  char prefix_key[MEMCACHED_PREFIX_KEY_MAX_SIZE];
  struct {
    bool is_allocated MEMCACHED_BITFIELD;
  } options;

};
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.