В общем пишу сканер сети (сканирует все smb шары - ищет файлы по заданным параметрам). Обычного сканирования мне стало мало, больно уж медленно происходит. Решил сделать его многопоточным, вот тут и появились проблемки - программа вылетает с сообщением Segmentation fault.
Схема работы функции запуска потоков такая:
	- делим список хостов на несколько равных частей
	- создаем обьекты-сканеры (они себе создают по одному Самба-контексту)
	- создаем потоки, кот. вызывают функцию сканирования для этих обьектов
	- ждем завершения потоков
Сделаю сразу несколько замечаний:
	- обьекты-сканеры добавляют данные в обьект-список_файлов, метод добавления реализован в виде критической секции через мьютексы
	- в потоках не вызываются никакие функции работающие с какими-либо другими общими данными
	- при запуске под дебаггером, при просмотре стека, видно, что ошибка произошла в _int_malloc (), вот состояние стека на момент краха программы:
(gdb) i stack
#0  0x00587024 in _int_malloc () from /lib/tls/libc.so.6
#1  0x0058610d in malloc () from /lib/tls/libc.so.6
#2  0x00cc3f68 in Realloc (p=0x9d2a460, size=1) at lib/util.c:890
#3  0x00ced851 in cli_receive_trans (cli=0xbdd214b0, trans=50, param=0xbf289f20, param_len=0xbf289f24, data=0xbf289f28, data_len=0xbf289f2c) at libsmb/clitrans.c:202
#4  0x00cebaf1 in cli_list_new (cli=0xbdd214b0, Mask=0xbf28b840 "WINDOWS\\*", attribute=22, fn=0xc9fbb0 <dir_list_fn>, state=0x9d29f50) at libsmb/clilist.c:22
#5  0x00cec73d in cli_list (cli=0x64d300, Mask=0xbf28b840 "WINDOWS\\*",
    attribute=42080, fn=0xc9fbb0 <dir_list_fn>, state=0x9d2e530)
    at libsmb/clilist.c:486
#6  0x00ca04f0 in smbc_opendir_ctx (context=0x9b01358, fname=0x9d1d014 "smb://10.3.2.2//tools/WINDOWS") at libsmb/libsmbclient.c:1759
#7  0x080527c6 in ZScanFileList::scanDir(char const*, ZSMBCCTX*, ZFileValidator*, ZFeList*) (this=0x9b01300, path=0xbf28c650 "smb://10.3.2.2/",   ctx=0x0, fv=0x0, fl=0x0) at zscanfilelist.cpp:91
Параметры системы:
	Samba 3.0.0-15, kernel 2.4.22, gcc 3.3.2
Какие есть идеи? Может в самбе ошибка?
Заранее благодарен.
    
      Ответ на:
      
          комментарий
        от Dead 
  
    
      Ответ на:
      
          комментарий
        от anonymous 
  
    
      Ответ на:
      
          комментарий
        от zhuk 
  
    
      Ответ на:
      
          комментарий
        от fortl 
  
    
      Ответ на:
      
          комментарий
        от zhuk 
  
    
      Ответ на:
      
          комментарий
        от zhuk 
  
    
        Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
      
Похожие темы
- Форум 100% процессора в маллоке, Или как убить кучу при написании модуля Apache (2005)
 - Форум проблемка с Samba (2001)
 - Форум Samba 3 PDC проблемка (2006)
 - Форум Portmaster multithread (2014)
 - Форум multithread ping (2012)
 
- Форум java multithreading (2008)
 - Форум mplayer multithreaded (2009)
 - Форум gprof + multithreading (2008)
 - Форум vector и multithreading (2016)
 - Форум c++ graph multithreading (2014)